【发布时间】:2011-12-08 08:16:17
【问题描述】:
我成功地读取了文件中的文本,但它只读取到它碰到一个空白区域,例如文本:“Hi, this is a test”,cout 为:“Hi”。
删除“,”没有任何区别。
我想我需要在以下代码中添加类似于“inFil.ignore(1000,'\n');”的内容:
inFil>>text;
inFil.ignore(1000,'\n');
cout<<"The file cointains the following: "<<text<<endl;
我不希望更改为getline(inFil, variabel);,因为这会迫使我重新编写一个基本上可以运行的程序。
感谢您的帮助,这似乎是一个很小且很容易解决的问题,但我似乎找不到解决方案。
【问题讨论】:
-
如果它的行为需要改变,重构程序是好的。围绕阅读部分写一个测试,然后去
readline。完成测试后,您就可以开始更改程序并对此感到放心。 -
"强制我重做一个基本上可以工作的程序。" 如果程序显示“嗨”,而您希望它显示“嗨,这是一个测试” ”,程序“基本工作”如何?
-
我真的不明白为什么切换到 getline() 对你来说是一场暴行。它不会改变代码中的任何内容,只是它正是您正在寻找的小而简单的修复程序。比弄乱忽略()更优雅。嗯,你想得到一条线,那你为什么不使用 getline 呢?是的,“基本上工作”,太棒了。