如何不转到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
打印出除新行之外的所有字符。 (只有当您不想做其他需要知道每一行内容的事情时,这种方法才有效。)
我是 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
打印出除新行之外的所有字符。 (只有当您不想做其他需要知道每一行内容的事情时,这种方法才有效。)