我正在编写一个应该读取文件的 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/