【发布时间】:2021-03-08 13:13:51
【问题描述】:
在我的程序中,我在 ofstream 的帮助下将用户提供的数据存储在 .txt 文件中。 我正在使用 setw() 来确保输入的数据之间存在适当的间隙,并且我将用户的数据存储在一行中。这是代码:
string n,mn,fn;
int a;
cout<<"Enter your full name: ";
getline(cin, n);
cin.ignore();
cout<<"Father name: ";
getline(cin, fn);
cin.ignore();
cout<<"Mother name: ";
getline(cin, mn);
cin.ignore();
cout<<"Enter your age: ";
cin>>a;
ofstream file("my.txt",ios::app);
file<<left<<setw(50)<<n<<setw(50)<<a<<setw(50)<<fn<<setw(50)<<mn<<endl;
file.close();
我的 .txt 文件以适当的间距正确保存数据:
parth kumar 12 jack worn juli zeel
standly duke 19 shane roger zoya khan
现在我想在我的同一个程序中流式传输这些数据。我将以下代码仅写入 ifstream 第一行。代码如下:
string fn,mn,n;
int a;
ifstream file("my.txt");
file>>left>>setw(50)>>n;
file>>setw(50)>>a;
file>>setw(50)>>fn;
file>>setw(50)>>mn
cout<<n<<" "<<a<<" "<<fn<<" "<<mn;
此代码没有给出预期的结果。我只是想流式传输第一行内容。 有可能吗?或者我应该将每组数据存储在不同的文件中(比如名字在一个,年龄在一个,父亲名字在一个,母亲名字在另一个)。你能帮忙吗?
【问题讨论】:
-
有可能吗?当然可以。
-
或者我应该将每组数据存储在不同的文件中(比如名字在一个,年龄在一个,父亲名字在一个,母亲名字在另一个)。 不需要这样做。
-
file>>setw(50)>>mn不起作用。您需要在输出而不是输入上执行 setw()。运算符 >>() 也将读取到第一个空格。
标签: c++ c++11 fstream ifstream