printf("%s",str); 与puts(str); 的区别

来源:互联网 发布:mysql创建自增长主键 编辑:程序博客网 时间:2024/06/09 13:41

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”格式字符不会自动输出换行符。

原创粉丝点击