gpt4 book ai didi

c++ - 输出流文件不添加新行

转载 作者:行者123 更新时间:2023-11-30 17:00:42 26 4
gpt4 key购买 nike

这个小问题就在我的代码片段中:

s = strcat(strdup(aLineOfText.data()), "\n");
outputFile.write(s, aLineOfText.length()+1);

我将换行符添加到字符串末尾并将其写入文本文件,但换行符似乎被省略了。我基本上每次都尝试在新行上添加一行文本,但它只是附加到同一行上。我有什么遗漏的吗?

最佳答案

嗯,strdup 创建字符串的拷贝,strcat 在此拷贝上进行操作,而不是在原始字符串上进行操作。因此,您不是在更改字符串 aLineOfText,而是更改了以后无法访问的临时拷贝。试试这个代码:

char* temp = new char[aLineOfText.length()+2];
strncpy(temp, aLineOfText.data(), aLineOfText.length()+2);
strcat(temp, "\n");

如果要将换行符附加到现有字符串中,则必须省略 strdup 并确保写入的字符串足够大(例如,至少有空间容纳另外两个字符、换行符和 null)。

关于c++ - 输出流文件不添加新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37420082/

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