我有一个变量
ifstream inFile("stuff.txt");
在stuff.txt文件中有一个完整的发送信息:
The quick brown fox jumps over the lazy dog
如何将其放入包含所有空格的char数组?
char text[250];
inFile >> text;
让我到第一个空间,没有别的。
答案 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;
}