c++ - 为什么这个IO操作会无限循环呢?

标签 c++ ifstream strtok atoi

我正在尝试从文本文件中读取并对输入进行标记化。在我意识到我忘记关闭我的 ifstream 之前,我一直遇到段错误。我添加了关闭调用,现在它无限循环。我现在只是想学习如何使用 strtok,这就是代码看起来并不完整的原因。

void loadInstructions(char* fileName)
{
   ifstream input;
   input.open(fileName);
   while(!input.eof());
   {
      string line; 
      getline (input,line);
      char * lineChar = &line[0];
      //instruction cmd; //This will be used later to store instructions from the parse
      char * token;
      token = strtok (lineChar," "); 
      // just trying to get the line number for now
      int lineNumber = atoi(token);
      cout << lineNumber << "\n";
   }
   input.close();
}

输入文件:(一行)

5 +8 0 0 25

最佳答案

while(input.good()); 可能不是您想要的...

关于c++ - 为什么这个IO操作会无限循环呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5175831/

相关文章:

c++ - 在具有多个源文件的程序中的何处定义 CUDA 内核

c++ - (C++) noob - 我的代码有什么问题?

C++ - 获取整数位的大小

c - 同时处理两个字符串时的strtok

在 Linux 中创建简单的 Shell

c++ - 无法在 C++ 应用程序中导入 dll

C++ 程序不会通过字符串输入的 cin 步骤

c++ - (Ab)使用构造函数和析构函数进行副作用不好的做法?备择方案?

c++ - 如何从 fgets 读取整个整数流并推回一维 vector ?

c - 用于 MinGW 的 strtok_r