赞
踩
printf("%s",str); 与puts(str); 的区别
int main()
{
FILE *fp;
char str[10];
int i;
if((fp=fopen("test4.txt","rt"))==NULL)
{
printf("Cannot open file!\n");
getch();
exit(1);
}
printf("Please input a string:\n");
while(fgets(str,10, fp))
{
(1)
————————————
}
fclose(fp);
system("pause");
return 0;
}
如果(1)处为printf("%s",str);,运行结果为
Please input a string:
aaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbb
ccccccccccccccccc
ddddddddddddddddddd
Press any key to continue . . .
如果(1)处为puts(str);,运行结果为
Please input a string:
aaaaaaaaa
aaaaaaaaa
a
bbbbbbbbb
bbbbbbbbb
bb
ccccccccc
cccccccc
ddddddddd
ddddddddd
d
Press any key to continue . . .
原因:使用fgets()函数从文件中读取字符串时,换行符“\n”也将保存在字符串中,使用puts()函数输出字符串时,把字符串输出完毕后还将输出一个换行符;而printf()函数的“%s”格式字符不会自动输出换行符。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。