主要讨论fgets,fputs ,fprintf,fscanf与gets,puts,printf,scanf区别
1.stdin stdout,stderr说明
简单讲,FILE * 类型指针
stdin —-默认对应是键盘,键盘是文件一种,设备文件
stdout —默认对应是显示器,也是文件一种
stderr—默认对应是显示器
2.fputs(const char *str, FILE *stream) ,功能更多
puts(const char *str)
对比定义,可以看出,puts是fputs的一种特殊情况
void main()
{
char str[100] = { 0 };
gets(str);
puts(str);
//当第二个参数是stdin时等价gets,但可以是其他 FILE*,比如fopen函数的返回值,即一个文件
fgets(str, 100, stdin);
fputs(str, stdout);//当第二个参数是stdout时等价puts
system(str);
}
3.scanf ,printf
void main()
{
char str[100] = { 0 };
fgets(str, 100, stdin);
fputs(str, stdout);
//scanf("%s", str);
//printf("%s\n", str);
fscanf(stdin, "%s", str);//功能更多,scanf只是特殊情况,输入设备是键盘
fprintf(stdout, "%s",str);//功能更多,printf只是特殊情况,输出设备是屏幕
system(str);
}