这个小问题出现在我的代码片段中:
s = strcat(strdup(aLineOfText.data()), "\n");
outputFile.write(s, aLineOfText.length()+1);
我将换行符添加到字符串的末尾并将其写入文本文件,但换行符似乎被省略了。我基本上每次尝试在新行上添加一行文本,但它只是附加到同一行。有什么我想念的吗?
答案 0 :(得分:0)
好吧,strdup会创建一个字符串的副本,而strcat在这个副本上运行,而不是在原始副本上运行。因此,您不会更改字符串aLineOfText,而是更改您之后无法访问的临时副本。试试这段代码:
char* temp = new char[aLineOfText.length()+2];
strncpy(temp, aLineOfText.data(), aLineOfText.length()+2);
strcat(temp, "\n");
如果要将换行符附加到现有字符串,则必须省略strdup并确保写入的字符串足够大(例如,至少有两个字符空格,换行符和空值)。
答案 1 :(得分:0)
知道了,对此有太多考虑......
我只是,除了一些建议外,还必须添加回车符来完成工作......
outputFile.write(aLineOfText.data(),aLineOfText.length()); outputFile<<为 “\ r \ n” 个强>
谢谢!