Jak*_*ake 4 c linux file-io fwrite
我必须写一个文件如下:
A
B
C
D
...
Run Code Online (Sandbox Code Playgroud)
字母表中的每个字符都需要写入文件中的不同行.我有以下程序一个接一个地写字符:
FILE* fp;
fp = fopen("file1","a+");
int i;
char ch= 'A';
for(i=0; i<26; i++){
fwrite(&ch, sizeof(char), 1, fp);
ch++;
}
fclose(fp);
Run Code Online (Sandbox Code Playgroud)
如何更改上述程序以将每个字符写入新行.(我尝试在每个字符后写"\n",但是当我使用VI编辑器或ghex工具查看文件时,我看到了额外的字符;我正在寻找一种方法,以便vi编辑器显示完全如上所示的文件).
我在第一次fwrite之后尝试使用以下内容:
fwrite("\n", sizeof("\n"), 1, fp);
Run Code Online (Sandbox Code Playgroud)
谢谢.
fwrite("\n", sizeof("\n"), 1, fp);
Run Code Online (Sandbox Code Playgroud)
应该
fwrite("\n", sizeof(char), 1, fp);
Run Code Online (Sandbox Code Playgroud)
否则,你正在写一个额外的\0,它是你的"\n"字符串常量的零终止的一部分(sizeof("\n")是两个,而不是一个).