21xrx.com
2024-11-08 23:21:54 Friday
登录
文章检索 我的文章 写文章
C++如何实现文件输入时不换行?
2023-07-05 13:08:30 深夜i     --     --
C++ 文件输入 不换行

在C++中,如果我们需要将数据从文件中读入到程序中,我们通常使用输入流对象,例如`ifstream`。然而有些时候,在读取文件时,我们可能不希望每读取一行就自动换行,而是希望将整个文件的内容作为一个长字符串读入。那么该如何实现呢?

我们可以使用C++中的 `std::ifstream` 类提供的 `get` 函数来读取文件中的每一个字符,然后将其存储到一个字符串中。在读取每一个字符时,我们可以检查其是否是换行符,如果是,则将其忽略掉,否则就将其添加到字符串中。

举个例子,假如我们有一个名为 `test.txt` 的文件,其内容如下:


hello

world

现在我们希望将其作为一个字符串读入到程序中,而不是两个字符串分别读入。我们可以使用如下代码:


#include <iostream>

#include <fstream>

#include <string>

using namespace std;

int main()

{

  string content = "";

  ifstream infile("test.txt");

  char c = ' ';

  while(infile.get(c)) {

    if(c != '\n') {

      content += c;

    }

  }

  cout << content << endl;

  return 0;

}

上述代码创建了一个空字符串 `content`,然后打开了文件 `test.txt` 并创建了一个输入流对象 `infile`。接下来的代码使用 `get` 函数逐一读取文件中的每个字符,并检查其是否为换行符。如果不是换行符,那么将该字符追加到 `content` 字符串中。最后,将 `content` 字符串输出。

运行上述程序会输出如下结果:


helloworld

可以看到,这里已经去除了换行符。

总结来说,我们可以通过使用文件的输入流读取每个字符,然后按照自己的需要进行处理,例如在读取时忽略掉换行符,最终实现将整个文件作为一个长字符串读入到程序中。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复