我正在尝试填写文本文档,但是当我这样做时 - 我得到第一行空白.我正在阅读的文本文档如下所示:
3
first fr random 5
second 9
third shazam 2
Run Code Online (Sandbox Code Playgroud)
我已经尝试删除第一个值,所以空白行消失了.所以它相关,但我需要这个价值.
// 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;
Run Code Online (Sandbox Code Playgroud)
输出看起来像这样:
*blank*
first fr random
Run Code Online (Sandbox Code Playgroud)
但我想要的是:
first fr random
Run Code Online (Sandbox Code Playgroud)
所以,在其他项目中,我从现在开始不会使用旧的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]
Run Code Online (Sandbox Code Playgroud)
请注意[endline]我添加的内容:它们可能'\n', '\r\n'取决于生成文件的系统.
你的第一条指令是:
in >> n;
Run Code Online (Sandbox Code Playgroud)
一个 格式化的输入写着:你问到从文件中读取一个整数,所以只有那些能够形成有效整数将被读取字符.
这意味着在该指令之后,文件的剩余部分将是:
[endline]
first fr random 5[endline]
second 9[endline]
third shazam 2[endline]
Run Code Online (Sandbox Code Playgroud)
其余的代码读取原始字节,因此它也将读取第一个[endline](并打印它).
正如评论中建议的那样,你不应该使用变长数组,因为它们不是任何C++标准的一部分(而是C语言的一部分).尝试使用C++ 标准库.
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |