Δημοσιεύτηκε: 13 Νοέμ 2009, 21:53
από bullgr
elefher έγραψε:το προγραμμα το εκανα με cin>> αλλα δεν δουλευει σωστα

Δεν ξέρω τι πρόβλημα ακριβώς έχεις αλλά μπορώ να φανταστώ... Για παράδειγμα στον παρακάτω κώδικα...
Κώδικας: Επιλογή όλων

#include <iostream>
int main()
{
char buffer[80] = {‘\0’};
std::cout << "Enter the string: ";
std::cin >> buffer;
std::cout << "Here’s the buffer: " << buffer << std::endl;
return 0;
}

...εάν πληκτρολογήσουμε πχ "Hello World" το αποτέλεσμα θα είναι:
Κώδικας: Επιλογή όλων

Enter the string: Hello World
Here’s the buffer: Hello

Θα λάβει μόνο το "Hello" επειδή το cin σταματά όταν δώσουμε null χαρακτήρα (enter)... Ως null χαρακτήρα βλέπει όμως και το space, με αποτέλεσμα να σταματά και να μην δέχεται και τους υπόλοιπους χαρακτήρες του παραδείγματος...

Σε αυτή τη περίπτωση μπορούμε να χρησιμοποιήσουμε το cin.get()... Άρα στο παραπάνω παράδειγμα κάνουμε τον εξής κώδικα:
Κώδικας: Επιλογή όλων

#include <iostream>
int main()
{
char buffer[80] = {'\0'};
std::cout << "Enter the string: ";
std::cin.get(buffer,79);
std::cout << "Here's the buffer: " << buffer << std::endl;
return 0;
}

Το cin.get() θα σταματήσει μόνο εάν δώσουμε newline χαρακτήρα (enter) ή εάν φτάσουμε τον προκαθορισμένο αριθμό χαρακτήρων... Με το cin.get() επίσης αποφεύγουμε την πληκτρολόγηση περισσότερων χαρακτήρων από αυτούς που έχουμε προκαθορίσει...