C语言学习笔记之 标准输入输出函数
标准输入输出函数
下面的所有函数都包含在stdio.h中
标准输出函数
- printf -> 格式化输出
- puts -> 输出字符串
- putc -> 输出字符
printf
函数原型:
printf(_In_z_ _Printf_format_string_ char const* const _Format,...)
使用方法:
printf(格式化字符串,参数列表);
格式化字符 | 转换结果 |
---|---|
%c | 字符 |
%d | int有符号整型(十进制) |
%hd | short有符号短整型(十进制) |
%ld | long有符号长整型(十进制) |
%i | 同%d |
%e | 以指数形式输出单、双精度浮点数 |
%E | 同%e |
%f | 以小数形式输出单、双精度浮点数 |
%g | 以%f 和%e中较短的输出宽度输出单、双精度浮点数 |
%G | 同%g |
%o | 无符号八进制 |
%s | char* 字符串 |
%u | 无符号整型(十进制) |
%lu | 无符号长整型(十进制) |
%hu | 无符号短整型(十进制) |
%x | 无符号十六进制 |
%X | 同%x,无前导0X |
%p | void* 指针值,也就是地址 |
%n | int* 存放已写字符的个数 |
% | %本身 |
例:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int a = 104302;
char s[4] = { 'a','b','c','\0' };
double pi = 3.14159265358979;
printf("%x\n", a);
printf("%o\n", a);
printf("%X\n", a);
printf("%p\n", &a);
printf("%s\n", s);
printf("%.14f\n", pi);
printf("%.14e\n", pi * 10000);
printf("%g\n", pi);
return 0;
}
运行结果:
1976e
313556
1976E
0000000BB1DEFB74
abc
3.14159265358979
3.14159265358979e+04
3.14159
%m.nf 表示输出m个数字,其中小数部分占n个
%-m.nf 表示向左对齐
puts
puts(字符串)
例:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
char s[] = "Hello world\n";
puts(s);
return 0;
}
运行结果:
Hello world
putc
putc(字符)
例:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
char s = 'C';
putc(s);
return 0;
}
运行结果:
C
标准输入函数
- gets 读取字符串
- scanf 格式化输入
- getchar 读取字符
gets
gets(字符串)
例:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
char s[4];
printf(">");
gets(s);
puts(s);
return 0;
}
运行结果:
>abc
abc
getchar
getchar()
读取一个字符,并将它返回
scanf
scanf(格式化字符串,地址列表)
功能:按照格式化字符串从终端读取数据,送到对应的内存地址中
格式化字符 | 转换结果 |
---|---|
%c | 字符 |
%d | int有符号整型(十进制) |
%hd | short有符号短整型(十进制) |
%ld | long有符号长整型(十进制) |
%s | 字符串 |
%f | float |
%lf | double |
例:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#define MAX(x,y) ((x > y) ? x : y)
int main() {
int n = 0;
printf(">");
scanf("%d", &n);
getchar(); // 把换行符从缓冲区过滤掉
printf("你输入的是%d\n",n);
double f;
printf(">");
scanf("%lf", &f);
getchar();
printf("你输入的是:%.2f\n", f);
int a, b;
printf(">");
scanf("%d %d", &a, &b);
getchar();
printf("max = %d\n", MAX(a, b));
char* s[n];
printf("请输入%d个字符:",n);
scanf("%s", s); // s相当于&s[0],此时数组为{"输入的字符串",...}
printf("%s\n", s);
system("pause");
return 0;
}
运行结果:
>5
你输入的是5
>3.14
你输入的是:3.14
>23 453
max = 453
请输入5个字符:absdlld
absdlld
请按任意键继续. . .