fgets,fputs,fprintf,fscanf

本文对比了标准I/O函数fgets、fputs、fprintf、fscanf与gets、puts、printf、scanf的区别,详细解释了这些函数的功能及使用场景,并通过代码示例展示了它们之间的联系与差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要讨论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);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值