标准输入函数
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;
}