Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 文本文件中的行尾-C++;_C++_File_Fstream - Fatal编程技术网

C++ 文本文件中的行尾-C++;

C++ 文本文件中的行尾-C++;,c++,file,fstream,C++,File,Fstream,我不知道如何实现这个算法 //你有一个像这样的文本文件 12 3 3 4 4 如果该行仅包含一个数字,则跳过它 否则 先读第一个数字,然后读第二个数字,然后做一些工作 那么,我怎么知道这条线已经结束了? 我需要将数据作为整数而不是字符串来处理行尾由字符'\n'表示 因此,当您读取文件时,必须查找'\n'字符,然后才能找到属于哪一行的内容 过程 从文件中提取第一个示例 把它放在缓冲器里 在'\n'字符上拆分缓冲区 分析每一行,只保留带有2个数字的行 请参考教程,如 从以上教程: string

我不知道如何实现这个算法

//你有一个像这样的文本文件

12 3
3
4 4
  • 如果该行仅包含一个数字,则跳过它 否则
  • 先读第一个数字,然后读第二个数字,然后做一些工作
  • 那么,我怎么知道这条线已经结束了?
    我需要将数据作为整数而不是字符串来处理

    行尾由字符
    '\n'
    表示

    因此,当您读取文件时,必须查找
    '\n'
    字符,然后才能找到属于哪一行的内容

    过程

  • 从文件中提取第一个示例
  • 把它放在缓冲器里
  • '\n'
    字符上拆分缓冲区
  • 分析每一行,只保留带有2个数字的行

  • 请参考教程,如

    从以上教程:

     string line;
      ifstream myfile ("example.txt");
      if (myfile.is_open())
      {
        while ( getline (myfile,line) )
        {
          cout << line << '\n';
        }
        myfile.close();
      }
    
    字符串行;
    ifstream myfile(“example.txt”);
    如果(myfile.is_open())
    {
    while(getline(myfile,line))
    {
    
    不能运行这个程序,看看发生了什么。它应该是非常直接的

    #include <iostream>
    #include <string>
    #include <fstream>
    #include <sstream>
    #include <vector>
    
    using namespace std;
    
    int main()
    {
    
         ifstream ifs;
         ifs.open("input.txt");
    
         string line;
    
         while (getline(ifs, line))
         {
    
            cout<<"whole line is: "<<line<<endl;
             //can seperate input:
             istringstream is(line);
             int numberOnLine;
    
             is>>numberOnLine;
             vector<int> myvec;
    
             while(is)
             {
                 myvec.push_back(numberOnLine);
                 is>>numberOnLine;
             }
    
             if(myvec.size()<2)
             {
                 cout<<"this line had less than 2 numbers ";
             }
             else{
                cout<<"the line had at least 2 numbers, here they are: ";
                for(int i=0; i<myvec.size(); ++i) cout<<myvec.at(i)<<" ";
             }
             cout<<endl;
         }
    
    }
    
    #包括
    #包括
    #包括
    #包括
    #包括
    使用名称空间std;
    int main()
    {
    国际单项体育联合会;
    ifs.open(“input.txt”);
    弦线;
    while(getline(ifs,line))
    {
    
    可以查找一些文件IO函数,如
    fgets()
    fstream.getline()
    。你应该提供一些代码。这不是一个家庭作业完成者。所以把它作为字符串读入,然后把字符串转换成
    int
    谢谢你的时间,如果我把它作为字符串或字符读入,怎么能把它作为数字处理呢?很简单,你可以做int-substring,而不是string-substring。我会为你更新答案