linux系统和windows系统的EOF快捷键**

linux系统和windows系统的EOF快捷键

今天在学习的时候被下面这段代码给折腾了将近一个小时,结果问题还没解决,最后还是求助师兄帮忙找出问题原因,尴尬至极…

#include <iostream>
#include <fstream>
#include <limits>

using namespace std;

int main(void){

fstream str;
int num;

str.open("num.txt",ios::out);
if(!str.is_open()){
cout << "文件打开失败!" << endl;
return 1;
}

while(1){
int n = 0;
//**linux系统下**
cout << "请输入一个整数[**ctrl+d**退出]:";

/**/windows系统下**
// cout << "请输入一个整数[**ctrl+z**退出]:";

cin >> num;

if(cin.eof()){
break;
}

while(cin.fail()){
cin.clear();
cin.ignore(std::numeric_limits<streamsize>::max(),'\n');

cout << "请重新输入:" ;
cin >> num;
}

str << num << "\t";
if(++n % 10 == 0){
str << endl;
}
}

str.close();
return 0;
}

**程序目的:**重复输入数字,并将数字保存至文件,要求每行最多只能有10个数字。
(这本来是个很简单的程序,结果忽略了linux系统和windows系统的快捷键的差别结果在这个坑里爬了一个小时…)
这段代码在vs上运行是正常的,但linux系统的终端下运行就有问题了:输入的数字没有写入文件!!!
问题现象:
linux系统和windows系统的EOF快捷键**
问题原因:
linux系统和windows系统的EOF快捷键**
就是因为这个坑,导致了数据不能写入文件!!!
原因解析:
ctrl + z:是windows系统下的文件结束符EOF的快捷键;
在linux系统下该快捷键的作用是将当前运行的程序挂起!!!
ctrl + d:才是linux系统下的EOF快捷键!!!

自我总结:
1,遇到问题,思维不够发散,太固化,容易找不到问题点,老是在一个方向上思考,不懂得换个方向思考问题。
2,基础知识掌握不够牢固,全面。

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

linux系统和windows系统的EOF快捷键**

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » linux系统和windows系统的EOF快捷键**
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏