int i = 5;
char c = 'n';
string st = "cool";
ofstream my("we.txt");
my <<st<<","<<c<<","<<i<<","<<endl;
string s;
ifstream your("we.txt");
while(your){
getline(your, st, ',');
your>>c;
your.ignore(1);
your>>i;
your.ignore(1);
cout<<st<<","<<c<<","<<i<<endl;
}
my.close();
我甚至不知道你的.ignore(1)代表什么,但不知何故它有效。问题是它打印结果两次,为什么? 有人可以解释我如何处理我在文件中写的信息?如果我想保存一个文件3信息字符串交易,双倍价格和卖出的字符(y / n),关于我有的每个项目如何管理它? 它看起来像这样 Timberland,40岁,n; Gucci,10岁,y; ......等等。
我现在需要它,因为明天我有考试,感谢你的帮助,对不起我的英语!
答案 0 :(得分:0)
对于双重打印的问题,这是因为在之后之后才设置eofbit
标志,而不是在文件末尾读取之后。这意味着你的循环将迭代一次到多次。
我建议您改为使用getline
来读取完整的行(在循环条件下),然后使用例如std::istringstream
来解析这条线。
所以,例如。
while (std::getline(your, fullLine))
{
std::istringstream istr(fullLine);
getline(istr, st, ',');
istr >> c;
// etc.
}