c++ - 如何在 C++ 中将文件中的段落作为单个字符串读取

标签 c++ string file

我正在编写一个应该读取文件的 C++ 程序。如果该文件包含一组句子,比如一个段落,我将如何将整个段落作为一个字符串来阅读? 当我尝试对此进行编码时,我的程序只能读取第一个单词,并且在看到 space 序列时停止。

例如:

如果我的句子是:你是一个伟大的程序员。

它应该显示:you are a great programmer.

但我得到的是:

如何编写代码...谁能帮我举个例子?

这是我到目前为止尝试过的:

string b;
    ifstream inFile( "file.txt", ios::in );
    if ( !inFile ) { cerr << "File could not be opened" << endl; exit( 1 ); } 
    inFile>>b;

最佳答案

默认情况下,输入流将空格视为字符串分隔符。试试 std::getline()一直读到换行符。

要阅读整个段落,您可以假设空行指定段落的结尾。因此,请阅读直到到达空行:

std::string read_paragraph( std::istream& is )
{
    std::stringstream ss;
    std::string line;

    do
    {
        std::getline( is , line );
        ss << line;
    } while( line != "" )

    return ss.str();
}

上面的代码逐行读取流,将当前行存储在 line 并将其刷新到 std::stringstream 中。存储段落。我们读取输入,直到当前行为空行。

关于c++ - 如何在 C++ 中将文件中的段落作为单个字符串读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19892754/

相关文章:

子函数到实际函数的 JavaScript 字符串

c++ - 将 WAV 文件音频输入转换为纯 ASCII 字符

c++ - 接收到输入时 OpenGL 重绘场景

java - 如何打印出BFS所走的路径?

c++ - 列出文件夹中的所有文件返回空列表

c++ - ifstream,getline返回一个内存地址

c++ - 将非特化类作为模板参数传入

c++ - QTreeWidget中如何获取拖放操作的source dragged

c# - 如何将二进制数组转换为word格式并使用c#将其显示到textarea

java - 有没有办法检索java源文件?