如何不转到c中的下一行文件

How not to go to the next line of file in c

我是 C 编程的新手,我的代码有问题。我的程序打开一个 .txt 文件并将其中的数据存储在一个字符串中。之后,将存储在字符串中的数据复制到另一个 .txt 文件中。

FILE *  fp = fopen("New.txt", "a");
FILE * fp2 = fopen("File.txt", "r");
while(fgets(str, 100, fp2) != NULL) {
    fputs(str, fp);
}
fclose(fp);
fclose(fp2);

现在我的问题是,我想将字符串存储在一行中,但我的程序总是转到下一行。例如,我希望数据为:

One Two Three

我的代码做了什么:

One
Two
Three

你能帮帮我吗?提前致谢。

fgets 读取一行,但在末尾保留换行符。当您编写该行时,新行也会被打印出来。您可以显式删除换行符,例如:

int len = strlen(str);

if (len && str[len - 1] == '\n') str[len - 1] = '[=10=]';

或者,您可以选择另一种方法:使用 getc 按字符读取文件并使用 putc 打印出除新行之外的所有字符。 (只有当您不想做其他需要知道每一行内容的事情时,这种方法才有效。)