如何在C中使用空格和多行来写?
我想编写一个文本,并使用如何在C中使用空格和多行来写?,c,C,我想编写一个文本,并使用和将其保存在.txt中。但用这种方法,我只能省下一行,再也省不下了 int main() { file*pf; char kar; if ((pf = fopen("try.txt","w")) == NULL) { printf("File couldn't created!\r\n"); exit(1); } while((kar=getchar()) != '\n') fputc(kar,
和
将其保存在.txt中。但用这种方法,我只能省下一行,再也省不下了
int main()
{
file*pf;
char kar;
if ((pf = fopen("try.txt","w")) == NULL)
{
printf("File couldn't created!\r\n");
exit(1);
}
while((kar=getchar()) != '\n')
fputc(kar, pf);
fclose(pf);
}
而不是
char kar;
...
while((kar=getchar()) != '\n')
fputc(kar, pf);
使用
而不是
char kar;
...
while((kar=getchar()) != '\n')
fputc(kar, pf);
使用
“\n”
表示行尾。在这里,您正在查找文件的结尾。因此,在代码中使用宏EOF
而不是'\n'
'\n'
表示行尾。在这里,您正在查找文件的结尾。因此,在代码中使用宏EOF
而不是'\n'
将多行代码放入文本文件的完整工作代码。要结束终端的输入,只需按Ctrl+Z键
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *pf;
char kar;
if ((pf = fopen("try.txt","w")) == NULL)
{
printf("File couldn't created!\r\n");
exit(1);
}
while((kar=getchar()) != EOF)
fputc(kar, pf);
fclose(pf);
return 0;
}
#包括
#包括
int main()
{
文件*pf;
查尔卡;
if((pf=fopen(“try.txt”,“w”))==NULL)
{
printf(“无法创建文件!\r\n”);
出口(1);
}
而((kar=getchar())!=EOF)
fputc(kar,pf);
fclose(pf);
返回0;
}
将多行代码放入文本文件的完整工作代码。要结束终端的输入,只需按Ctrl+Z键
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *pf;
char kar;
if ((pf = fopen("try.txt","w")) == NULL)
{
printf("File couldn't created!\r\n");
exit(1);
}
while((kar=getchar()) != EOF)
fputc(kar, pf);
fclose(pf);
return 0;
}
#包括
#包括
int main()
{
文件*pf;
查尔卡;
if((pf=fopen(“try.txt”,“w”))==NULL)
{
printf(“无法创建文件!\r\n”);
出口(1);
}
而((kar=getchar())!=EOF)
fputc(kar,pf);
fclose(pf);
返回0;
}
主要问题是无法输入换行符。检查[this][1][1]:这是一个很好的建议,但是将int
转换为char
会将EOF
转换为字符值。。。即使EOF
不是字符值。请注意,getchar()
的返回值是int
,而不是char
,因此将其存储在char
中会以某种方式引起混淆。主要问题是无法输入换行符。检查[this][1][1]:这是一个很好的建议,但是将int
转换为char
会将EOF
转换为字符值。。。即使EOF
不是字符值。请注意,getchar()
的返回值是int
,而不是char
,因此将其存储在char
中会以某种方式引起混淆。假设我要输入3行,那么如何使其停在第3行@索拉布-agarwal@Embek:使用先前的解决方案,计算行数,并调整while循环以在处中断!=\n&&numberOfLines@Embek,或者输入CTRL+D(如果您使用的是linux/unix/osx),或者按CTRL+Z(windows/DOS)@ckruczek,以及如何使用它?我真的不明白。嗯@Embek,只需在程序中添加一个计数器,并在每次识别“\n”时递增它。不太难管理我猜假设我想输入3行,那么我如何让它停在第3行@索拉布-agarwal@Embek:使用先前的解决方案,计算行数,并调整while循环以在处中断!=\n&&numberOfLines@Embek,或者输入CTRL+D(如果您使用的是linux/unix/osx),或者按CTRL+Z(windows/DOS)@ckruczek,以及如何使用它?我真的不明白。嗯@Embek,只需在程序中添加一个计数器,并在每次识别“\n”时递增它。不太难管理,我想C是一种区分大小写的语言<代码>文件*pf不正确,并且文件*pf
正确。另外,正如我在对其中一个答案的评论中指出的,getchar()
的返回类型是int
,而不是char
。它必须能够编码任何有效的字符和EOF,这是不同的。在char
中不能这样做,因此它返回int
。如果您的普通char
是有符号类型,则键入字符代码0xFF(通常为ÿ、U+00FF、带分音符的拉丁文小写字母Y)的人将被视为键入EOF;如果plainchar
是无符号的,则没有与EOF匹配的值。请注意,C是区分大小写的语言<代码>文件*pf不正确,并且文件*pf
正确。另外,正如我在对其中一个答案的评论中指出的,getchar()
的返回类型是int
,而不是char
。它必须能够编码任何有效的字符和EOF,这是不同的。在char
中不能这样做,因此它返回int
。如果您的普通char
是有符号类型,则键入字符代码0xFF(通常为ÿ、U+00FF、带分音符的拉丁文小写字母Y)的人将被视为键入EOF;如果plainchar
无符号,则没有与EOF匹配的值。