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','' };
	double pi = 3.14159265358979;

	printf("%x
", a);
	printf("%o
", a);
	printf("%X
", a);
	printf("%p
", &a);
	printf("%s
", s);
	printf("%.14f
", pi);
	printf("%.14e
", pi * 10000);
	printf("%g
", 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
";

	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);

	double f;
	printf(">");
	scanf("%lf", &f);
	getchar();
	printf("你输入的是:%.2f
", f);

	int a, b;
	printf(">");
	scanf("%d %d", &a, &b);
	getchar();
	printf("max = %d
", MAX(a, b));

	char* s[n];
	printf("请输入%d个字符:",n);
	scanf("%s", s); // s相当于&s[0],此时数组为{"输入的字符串",...}
	printf("%s
", s);

	system("pause");
	return 0;
}

运行结果:

>5
你输入的是5
>3.14
你输入的是:3.14
>23 453
max = 453
请输入5个字符:absdlld
absdlld
请按任意键继续. . .
原文地址:https://www.cnblogs.com/zhujiangyu/p/13589414.html