C:使用fwrite将char写入不同的行

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)

谢谢.

das*_*ght 9

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")是两个,而不是一个).