【发布时间】:2013-03-20 08:42:45
【问题描述】:
我正在尝试对文本文件的每行进行操作,而我现在的方式是,我的 ifstream 对象没有检测到每一行的 \n 字符,这是此操作所必需的项目。这是我现在的方式:
std::ifstream instream;
instream >> value;
while (value != '\n')
{
// do code and such
}
但是当我让它运行循环时,我得到的只是程序中所有内容的一行。虽然它在循环中完全按照它应该做的那样做,但我需要\n 才能被识别。这是我的.txt 文件:
LXXXVII
cCxiX
MCCCLIV
CXXXLL
MMDCLXXIII
DXLCC
MCdLxxvI
XZ
X
IV
就是这样。我无法改变它。
【问题讨论】:
-
value是什么数据类型?您可能想使用value = cin.get()而不是cin >> value。 -
如果要读取行数,请使用读取行数的函数。 “\n”,真正的意思是 empty 行。
-
value 是 char 类型,它不能是任何类型的数组,那么我将使用什么来代替?和@DavidSchwartz,\n 我真的是指行尾。
-
了解
getline。 -
@wbAnon 根据您的评论,Ben Voigt 的评论应该可以解决您的问题。
标签: c++ text project newline ifstream