如何摆脱C ++中的空行

how to get rid of blank line in c++?

本文关键字:何摆脱      更新时间:2023-10-16

我正在尝试填写文本文档,但是当我这样做时 - 我的第一行空白。我正在阅读的文本文档如下所示:

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] 并像这样忽略它:in.ignore(std::numeric_limits<std::streamsize>::max(), 'n');

您的输入文件如下所示:

3[endline]
first fr random 5[endline]
second          9[endline]
third shazam    2[endline]

请注意我添加的[endline]:根据生成文件的系统,可以'n', 'rn'它们。

您的第一个指示是:

in >> n;

格式化的输入读取:您要求从文件中读取整数,因此只会读取可以形成有效整数的字符。

这意味着在该指令之后,文件的剩余部分将是:

[endline]
first fr random 5[endline]
second          9[endline]
third shazam    2[endline]

代码的其余部分读取原始字节,因此它也将读取第一个[endline](并打印它)。

正如注释中建议的那样,您不应该使用可变长度数组,因为它们不是任何C++标准的一部分(而是 C 标准的一部分)。尝试改用 C++ 标准库。