我一直在努力保存到文件,这就是结果。唯一的问题是在空格之后的任何事情都被忽略了(如果你输入“john smith”)它会打印出来 (“使用此文件的最后一个人是:john”)我正在使用GNU GCC编译器的代码块。这是代码:
#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;
}
谢谢
答案 0 :(得分:0)
对于ifstream
(包括cin
)的字符串对象,使用从开头到第一个空格的输入,空格为SPACE,TAB和NELINE。
因此,您应该使用getline
代替cin >>
试试这个:
Data.open("Info.data");
getline(Data, name);
Data.close();
和
cout << "What is your name?" << endl;
//cin >> name;
getline(cin, name);
<强>更新强>
顺便说一句,在你的代码中 之后
Data.open("Info.data", ios::binary);
你使用
Data >> name;
因此,以二进制模式打开的流由>>
读取 - 它不太好。