c++ - 程序未正确执行文件操作
问题描述
尽管输入了“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.
程序应根据用户的意愿接收未完成的输入。然后它应该显示文件的内容。它正在显示内容。
解决方案
输入单个字符时
cin >> ch;
换行符被放入cin
流中(输入y或n后,您也可以单击Enter
换行)。然后执行 in 循环getline
,读取所有字符,直到出现新行。并且此功能正常工作,它读取 0 个字节 - 这样的字符数在输入的换行符之前。
要忽略这一新行并阅读content
使用cin.ignore()
:
cin>>ch;
cin.ignore();
推荐阅读
- javascript - 制作动态/可重用的方法
- node.js - 如何知道使用我的应用程序的谷歌帐户进行身份验证的用户的经过身份验证的电子邮件
- unity3d - 使用 Unity 在 ARCore 中点击以选择特定平面
- git - Git - 在签出之前更新分支
- javascript - JS:验证表中是否存在当前日期 [更新]
- angular - 通过 NPM 重用 Angular 组件,并能够编写自定义 html
- docker - 如何使用相同的 docker-compose.yml 文件创建 2 个不同的正在运行的应用程序?
- javascript - 如何根据活动导航选项卡动态生成页面标题?
- javascript - 如何遍历 document.body
- java - 如何在java中动态填充json文件中的变量值