c++ - 从 C++ 中的文件输入

标签 c++ file-io

我想逐个字符地从文件中读取并对每个字符执行特定操作,我正在使用以下循环:

 ifstream in
 while(in)
 {
    ch=in.get();
    //some operation
  }

我暂时不想读取条件中的字符,因为那时光标会移动到下一个位置,我会错过那个字符。 问题是文件末尾没有正确发出信号,最后一个字符被读取了两次。请给出避免这种情况的方法 例如。如果文件中的字符串是 军队 它被读作军队(当我打印时)

最佳答案

char ch;
while(in.get(ch)){ }  //or in>>std::noskipws>>c

这将是正确的方式,因为您想要的字符存储在 ch 中。这有什么问题?

如果你真的想要它的方式,那么你可以使用 peek() 来查看下一个字符并执行适当的操作:

char c = in.peek(); //this will give you the next character in the stream
//if its an eof, do appropriate

关于c++ - 从 C++ 中的文件输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18584262/

相关文章:

C++ 数组(初学者)

file - 使用 GWT 列出目录中的文件

c++ - 在 Linux 上以编程方式获取准确的 CPU 缓存层次结构信息

c++ - 当我们在两个结构上使用 = 运算符时,它会做什么?

haskell - getDataFileName 返回一个不存在的目录

c++ - 如何在没有 "ifstream"任何字符的情况下通过 "getting"将文件指针移动到下一个字符,就像 "fseek"一样?

c - C 文件 I/O 中的段错误

java - 将JTable内容保存到文本文件并读取

C++字符串问题

c++ - 为什么std::reduce需要交换性?