将文本从文件输入到char变量

时间:2012-11-20 21:29:53

标签: c++ char fstream

我有一个变量

ifstream inFile("stuff.txt");
在stuff.txt文件中有一个完整的发送信息:

The quick brown fox jumps over the lazy dog

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

char text[250];
inFile >> text;

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

2 个答案:

答案 0 :(得分:3)

使用ifstream::getline()读取char数组或使用std::getline()读取std::string。当你使用inFile >> text时,空格会充当分隔符,这就是它在第一个空格处停止的原因。

使用std::getline()读取std::string,无需指定要读取的最大字符数。这消除了缓冲区溢出的可能性,并避免了处理部分读取行的额外复杂性(例如,如果一行是> 250)。

请务必立即检查IO操作的结果:

 std::ifstream inFile("stuff.txt");
 if (inFile.is_open())
 {
     std::string line;
     if (std::getline(inFile, line))
     {
         // Use 'line'.
     }
 }

答案 1 :(得分:0)

while (!inFile.eof()) {

    inFile >> text;

 }