我正在尝试填充文本文档,但是当我这样做时-我得到第一行空白。 我正在阅读的文本文档如下所示:
3
first fr random 5
second 9
third shazam 2
我尝试删除第一个值,所以空白行消失了。因此它具有相关性,但我需要该值。
// My code
ifstream in("U2.txt");
ofstream out("U2.txt");
int n;
in>>n;
char vardaiStart[n][21];
in.read(vardaiStart[0], 21);
out << vardaiStart[0]<< endl;
输出看起来像这样:
*blank*
first fr random
但是我想要的是:
first fr random
因此,从现在开始,在其他项目中我将不再使用旧的C,但是对于该项目,我将[endline]改为[endline],并忽略了它,例如:in.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
答案 0 :(得分:6)
您的输入文件如下:
3[endline]
first fr random 5[endline]
second 9[endline]
third shazam 2[endline]
请注意我添加的[endline]
:它们可以是'\n',
'\r\n'
,具体取决于生成文件的系统。
您的第一个指示是:</ p>
in >> n;
格式化为 的输入:您要从文件中读取一个整数,因此将只读取可以构成有效整数的字符。
这意味着在该指令之后,文件的其余部分将是:
[endline]
first fr random 5[endline]
second 9[endline]
third shazam 2[endline]
其余代码读取原始字节,因此它也将读取前[endline]
(并打印)。
正如注释中的其他建议,您不应使用variable length arrays,因为它们不是任何C ++标准的一部分(而是C语言标准的一部分)。尝试改用C ++ standard library。