#include <stdio.h>
int main ()
{
FILE * fp;
int i,n;
char str[20];
printf("Enter the number of lines to be written: ");
scanf("%d", &n);
fp = fopen ("abc.txt","w");
for(i = 0; i < n+1;i++)
{
gets(str);
fputs(str, fp);
}
fclose (fp);
return 0;
}
在这段代码中,我可以写多行但是当我在记事本中检查结果时,这些多行显示在一行中。如何在命令提示符下输入它们时显示它们(这里我使用的是Visual Studio 2008命令提示符)。
答案 0 :(得分:2)
您替换现有的添加
#include <stdio.h>
int main ()
{
FILE * fp;
int i,n;
char str[20];
printf("Enter the number of lines to be written: ");
scanf("%d", &n);
fp = fopen ("abc.txt","w");
for(i = 0; i < n+1;i++)
{
gets(str);
fputs(str, fp);
fputs("\n", fp);
}
fclose (fp);
return 0;
}
添加输入后。
fputs("\n", fp);
在添加文本后,在文件abc.txt中添加新行。
答案 1 :(得分:1)
添加类似的内容,
fputs(str, fp);
fputs("\r\n", fp); /* add a Windows new line */
答案 2 :(得分:1)
您可以尝试这样:
fputs("\n", fp);
即,将\n
移至下一行。 \n
用作C
答案 3 :(得分:0)
您需要将\ r \ n附加到每一行。 (回车加行换行。)
UNIX只需要\ n,但是有些Windows工具不能很好地解决这个问题。
答案 4 :(得分:0)
正如WhozCraig指出的,获取是邪恶的,类似于要求缓冲区溢出
但要回答你的问题,请添加一个CRLF(回车+换行),如下所示:
#include <stdio.h>
int main(void){
FILE* fp;
int n;
char str[20];
printf("Enter the number of lines to be written: ");
scanf("%d", &n);
fp = fopen ("abc.txt","w");
for(int i = 0; i < n+1;i++){
gets(str);
fputs(str, fp);
fputs("\r\n", fp);
}
fclose (fp);
return 0;
}