C语言程序设计:标准输入输出函数

标准输入函数

scanf

scanf 是 C 语言标准库 <stdio.h> 中的一个函数,用于从标准输入(通常是键盘)或文件中读取格式化输入

(1)函数原型

#include <stdio.h>//引入头文件
int scanf(const char *format, ...);//函数原型

(2)参数说明

  • format:格式控制符
  • ...:可变参数

(3)返回值含义

scanf的返回值代表成功读入的参数个数,如果发生了错误或者遇到了文件结束符,返回值可能会小于参数的个数。

(4)使用示例

#include<stdio.h>

int main() {
    int a;
    int ret = scanf("%d", &a);//标准输入函数
    printf("ret = %d, a = %d\n", a, ret);
    return 0;
}

在这里插入图片描述

sscanf

sscanf 是 C 语言标准库 <stdio.h> 中的一个函数,它的功能类似于 scanf,但是它从一个字符数组中读取格式化输入,而不是从标准输入或文件中读取。

(1)函数原型

#include<stdio>//引入头文件
int sscanf(const char *str, const char *format, ...);//函数原型

(2)参数说明

  • str :字符数组
  • format :格式化控制
  • ...:可变参

(3)返回值含义

sscanf 函数的返回值是成功读取并且赋值的参数的个数。如果成功读取了所有的参数,返回值将会是参数的个数;如果发生了错误或者解析失败,返回值可能会小于参数的个数

(4)使用示例

#include<stdio.h>
int main() {
    char str[20] = "24";
    int a;
    int ret = sscanf(str,"%d", &a);//从字符数组中读取
    printf("ret = %d, a = %d\n", ret, a);
    return 0;
}

在这里插入图片描述

fscanf

fscanf 是 C 语言标准库 <stdio.h> 中的一个函数,它与 scanf 函数相似,但是它从文件流读取格式化输入,而不是从标准输入。

(1)函数原型

#include<stdio.h>//头文件
#include<stdlib.h>
int fscanf(FILE *stream, const char *format, ...);//函数原型

(2)参数说明

  • stream:文件流指针
  • format:格式控制符
  • ...:可变参

(3)返回值含义

fscanf 函数的返回值是成功读取并且赋值的参数的个数。如果成功读取了所有的参数,返回值将会是参数的个数;如果发生了错误或者解析失败,返回值可能会小于参数的个数。

(4)使用示例

#include<stdio.h>
#include<stdlib.h>
int main() {
    FILE *fp = NULL;
    if ((fp = fopen("./input.txt", "r+")) == NULL) {
        perror("fopen");
        exit(EXIT_FAILURE);
    }
    int a;
    int ret = fscanf(fp, "%d", &a);
    printf("ret = %d, a = %d\n", ret, a);
    fclose(fp);
    return 0;
}

在这里插入图片描述

标准输出函数

printf

printf 是 C 语言标准库 <stdio.h> 中的一个函数,用于格式化输出标准输出设备(通常是显示器)。

(1)函数原型

 #include <stdio.h>//头文件
int printf(const char *format, ...);//函数原型

(2)参数说明

  • format:格式化控制
  • ...:可变参

(3)返回值含义

printf 函数的返回值是成功输出的字符数量,即打印到标准输出的字符数。如果发生错误,则返回一个负数

(4)使用示例

#include<stdio.h>
#include<stdlib.h>
int main() {
    int a;
    while (~scanf("%d", &a)) {
        printf(" has %d digits\n", printf("%d", a));//输出整数的位数
    }
    return 0;
}

在这里插入图片描述

sprintf

sprintf 是 C 语言标准库 <stdio.h> 中的一个函数,用于将格式化的数据写入到字符串中,而不是输出到标准输出设备。

(1)函数原型

#include<stdio.h>//头文件
int sprintf(char *str, const char *format, ...);//函数原型

(2)参数说明

  • str:字符数组
  • format:格式化控制符
  • ...:可变参

(3)返回值含义

sprintf 函数的返回值是成功写入字符串缓冲区中的字符数量,即生成的字符串的长度。如果发生错误,返回值为负数

(4)使用示例

#include<stdio.h>
int main() {
    char str[20] = {0};
    int ret = sprintf(str, "hello word\n");
    printf("ret = %d, str = %s", ret, str);
    return 0;
}

在这里插入图片描述

fprintf

fprintf 是 C 语言标准库 <stdio.h> 中的一个函数,用于将格式化的数据写入到指定的文件流中。

(1)函数原型

#include<stdio.h>//头文件
int fprintf(FILE *stream, const char *format, ...);//函数原型

(2)参数说明

  • stream:文件流指针
  • format:格式控制符
  • ...:可变参

(3)返回值含义

fprintf 函数的返回值是成功写入到文件中的字符数量,即生成的字符串的长度。如果发生错误,返回值为负数

(4)使用示例

#include<stdio.h>
#include<stdlib.h>
int main() {
    FILE *fp = NULL;
    if ((fp = fopen("./output.txt", "w+")) == NULL) {
        perror("fopen");
        exit(EXIT_FAILURE);
    }
    int ret = fprintf(fp, "hello word\n");
    printf("ret = %d\n", ret);
    fclose(fp);
    return 0;
}

在这里插入图片描述

实现自己的printf函数

简易版printf实现

  • 55
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值