首页 > 解决方案 > 程序未正确执行文件操作

问题描述

尽管输入了“y”,但代码不接受更多输入。这么多部分没有产生所需的结果。

代码块:

char ch='y';
of.open("FileHandling.txt", ios::app);          //opening file.
while(ch=='y')
{
  cout<<"\n\n\t\tEnter contents in the file : \n\n\t\t";
  getline(cin, content);
  of<<content;
  cout<<"\n\n\t\tWish to write more ( y / n ) ? : ";
  cin>>ch;
}
of.close();         //closing file.

程序应根据用户的意愿接收未完成的输入。然后它应该显示文件的内容。它正在显示内容。

标签: c++io

解决方案


输入单个字符时

cin >> ch;

换行符被放入cin流中(输入yn后,您也可以单击Enter换行)。然后执行 in 循环getline,读取所有字符,直到出现新行。并且此功能正常工作,它读取 0 个字节 - 这样的字符数在输入的换行符之前。

要忽略这一新行并阅读content使用cin.ignore()

cin>>ch;
cin.ignore();

推荐阅读