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

   日期:2020-09-23     浏览:177    评论:0    
核心提示:linux系统和windows系统的EOF快捷键今天在学习的时候被下面这段代码给折腾了将近一个小时,结果问题还没解决,最后还是求助师兄帮忙找出问题原因,尴尬至极…#include <iostream>#include <fstream>#include <limits>using namespace std;int main(void){ fstream str; int num; str.open("num.txt",ios::o

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系统的终端下运行就有问题了:输入的数字没有写入文件!!!
问题现象

问题原因:

就是因为这个坑,导致了数据不能写入文件!!!
原因解析
ctrl + z:是windows系统下的文件结束符EOF的快捷键;
在linux系统下该快捷键的作用是将当前运行的程序挂起!!!
ctrl + d:才是linux系统下的EOF快捷键!!!

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

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服