LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 923|回复: 2

printf("%s",temp)和puts(temp)有什么区别?

[复制链接]
发表于 2004-5-20 00:16:15 | 显示全部楼层 |阅读模式
/*整个程序的作用就是把文件读到标准输出*/
#include<stdio.h>
int main()
{
        FILE *fin=freopen("input.txt","r",stdin);//把input.txt文件作为标准输入
        char temp[10];
        while(gets(temp))
                puts(temp);
        return 0;
}
这样正常!!!

#include<stdio.h>
int main()
{
        FILE *fin=freopen("input.txt","r",stdin);
        char temp[10];
        while(scanf("%s",temp))   //改了这两句
                printf("%s",temp);
        return 0;
}
这样就不正常了

比如input.txt文件为:
green
red
pink
0
发表于 2004-5-20 00:29:29 | 显示全部楼层
问题在于回车(换行)键的处理。
把scanf()换成fgets(),从文件直接读取行数据即可,而无需重定向标准输入。

int fgets(char *strbuf, int chars, FILE *fp); /*chars=strlen+1*/
发表于 2004-5-21 10:05:12 | 显示全部楼层
>>printf("%s",temp)和puts(temp)有什么区别?

puts(s) == printf("%s\r\n", s) (Win32/DOS)
puts(s) == printf("%s\n", s) (*nix)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表