2016-08-06 6 views
-3

Ich habe an Speichern in Dateien gearbeitet und das war das Ergebnis. Das einzige Problem ist, dass alles nach einem Leerzeichen ignoriert wird (wenn Sie "John Smith" eingegeben haben), würde es ("die letzte Person, die diese Datei verwenden, war: John") Ich verwende Codeblocks mit dem GNU GCC-Compiler. Hier ist der Code:Beim Speichern in Datei werden Wörter nach Leerzeichen ignoriert

#include <iostream> 
    #include <cstdlib> 
    #include <fstream> 

    using namespace std; 

    int main() 
    { 
     string name; 
     ofstream saveData; 
     ifstream Data; 
     Data.open("Info.data", ios::binary); 
     Data >> name; 
     Data.close(); 
     cout << "The last person to use the file was " << name << endl; 
     cout << "What is your name?" << endl; 
     cin >> name; 
     saveData.open("Info.data", ios::binary); 
     saveData << name; 
     cout << name << endl; 
     system("PAUSE"); 
     saveData.close(); 
     return 0; 
    } 

dank

Antwort

0

Bei Strings Objekten von ifstream (einschließlich cin) verwenden, um Eingaben von Anfang bis zum ersten Platz und Raum ist SPACE, TAB und neline. Also, sollten Sie getline anstelle cin >>

Try this:

Data.open("Info.data"); 
getline(Data, name); 
Data.close(); 

und

cout << "What is your name?" << endl; 
//cin >> name; 
getline(cin, name); 

UPDATE:

By the way, in Ihrem Code nach

Data.open("Info.data", ios::binary); 

Sie verwenden

Data >> name; 

So Strom im Binärmodus geöffnet von >> gelesen wird - es ist nicht so gut ist.

+0

empfehlen einen Tausch von Istream für Ifstream und Leerzeichen für den Raum. – user4581301

+0

Was #include-Datei ist getline in? –

+0

#include VolAnd

Verwandte Themen