gpt4 book ai didi

c++ - 在文件中插入新行会删除接下来的两个字符 C++

转载 作者:行者123 更新时间:2023-11-30 01:10:17 25 4
gpt4 key购买 nike

我有一个文件,我希望按行分隔文件中的项目。项目结束的指示符是分号。所以当我遇到分号时,我想把分号后面的所有内容都放在换行符上。继续,直到我找到下一个分号并重复。

char c;
fstream distances;

distances.open(argv[1]);

while(distances >> c) {
if(c == ';') {
distances << endl;
}
}

这是main里面的代码。它正在正确打开文件。文件说

i;am;testing;this

但在运行程序后,文件显示为:

i;
;
sting;
is

我不确定为什么它会删除分号后面的两个字符。除非它将该空间用于\n 字符。如果有人可以提供帮助或提出更有效的解决方案,我将不胜感激。

最佳答案

尽管文本编辑软件呈现出错觉,但您无法“插入”到文件中。您只能读取其内容,在内存中修改它们,然后再将它们写回。

您的两个字符正在被您的换行符替换,在 Windows 上,换行符实际上由一个回车符和一个换行符组成。

关于c++ - 在文件中插入新行会删除接下来的两个字符 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38286967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com