c++ - 如果流式传输文件无法正常工作。这是代码
问题描述
在我的程序中,我在 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;
此代码没有给出预期的结果。我只是想流式传输第一行内容。有可能吗?或者我应该将每组数据存储在不同的文件中(比如名字在一个,年龄在一个,父亲名字在一个,母亲名字在另一个)。你能帮我吗?
解决方案
如果您读取文件,则不必指定值之间存在间隙。Fstream 为您完成。任何有空格的地方都不会读作一个,例如父亲的名字杰克。它只会读杰克。Fstream 阅读内置了以空格分隔的阅读。因此,您必须以不同的变量读取父亲的姓名和姓氏,母亲也是如此。我没有测试这段代码。这是基于我的一般知识,所以它可能不是真的。
string fn,fsn,mn,msn,n;
int a;
ifstream file("my.txt");
file >>n; // Name
file >> a; // Age
file >> fn; // Father's name
file >> fsn; // Father's surname
file >> mn; // Mother's name
file >> msn; // Mother's surname
cout << n << " " << a << " " << fn << ' ' << fsn <<" " << mn << ' ' << msn;
推荐阅读
- node.js - 带有 node-slack-sdk 的 slack 斜杠命令
- android - 将盒子阴影翻译成反应原生的原生阴影
- python - 在深度学习模型中进行投票
- flutter - 如何使用三元运算符以简单的方式检查字符串是否为空
- javascript - 工作箱 5 | regeneratorRuntime 未定义
- c - 如何在C中读取文本文件中的下一行
- python - python 初学者 - 建立具有组约束的情侣列表
- react-native - React Native useEffect 依赖循环
- php - 如何在 PHP 中使用“Nullsafe 运算符”
- react-native - 放大 - 联合登录 - 无法从用户池中获取用户