0

我有一个变量

ifstream inFile("stuff.txt");

在 stuff.txt 文件中有一个完整的句子:

The quick brown fox jumps over the lazy dog

如何将其放入包含所有空格的 char 数组中?

char text[250];
inFile >> text;

带我到第一个空间,没有别的。

4

2 回答 2

3

用于ifstream::getline()读入char数组或用于std::getline()读入std::string. 当您使用inFile >> text空格时,它将充当分隔符,这就是它停在第一个空格的原因。

使用std::getline()to read into astd::string消除了指定要读取的最大字符数的要求。这消除了缓冲区溢出的可能性,并避免了处理部分读取行的额外复杂性(> 250例如,如果在这种情况下有一行)。

始终立即检查 IO 操作的结果:

 std::ifstream inFile("stuff.txt");
 if (inFile.is_open())
 {
     std::string line;
     if (std::getline(inFile, line))
     {
         // Use 'line'.
     }
 }
于 2012-11-20T21:32:19.513 回答
0
while (!inFile.eof()) {

    inFile >> text;

 }
于 2012-11-20T21:32:35.487 回答