C语言的输入输出
C语言的输入输出
c语言一般使用scanf()、fscanf()、getchar()、getch()、getche()和gets()等进行输入,printf()和fprintf()等进行输出
C语言的输入
1.使用scanf()函数进行输入
scanf()函数的原型是
int scanf(const char * restrict format,...);
scanf()函数位于C标准库头文件<stdio.h>中
format 是 类似于 %d %s %e %f %lf %lld之类的格式串
格式后面按格式串里面定义的先后顺序 依次书写变量的地址 如&a和&b 但是字符数组的变量名就代表了该字符数组的首地址了 不用加上&取地址运算符
#include <stdio.h>
int main()
{
//声明了两个整形变量a和b
int a=0,b=0;
//输入两个整数并赋值给整形变量a和b
scanf("%d %d",&a,&b);
//计算a+b的值并输出
printf("a+b=%dn", a+b);
return 0;
}
2.scanf() 常见的格式控制符汇总
格式控制符 | 含义 |
---|---|
%d %ld %lld | 输入一个int型整数 输入一个long型整数 输入一个long long型整数 |
%c | 输入一个字符 |
%s | 输入一个字符串(遇到空格截断) |
%f %lf | 输入一个float单精度浮点数 输入一个double双精度浮点数 |
%o %x %u | 输入一个八进制整数到int型变量 输入一个十六进制整数到int型变量 输入一个无符号整数到int型整数 |
%e %le | 输入一个指数形式的小数到float单精度浮点数 输入一个指数形式的小数到double单精度浮点数 |
3.fscanf()是文件输入的函数 暂时不用了解
4.getchar()是从输入流中读取一个字符的函数
char ch;
getchar(ch);
getchar()函数位于C标准库头文件<stdio.h>中
后续的getchar()调用是不会等待用户按键,而直接读取缓冲区中的字符
5.getch()是从控制台中读取一个字符的函数
char ch;
getch(ch);
getch()函数位于C标准库头文件<conio.h>中
getch()调用会等待用户按键,从控制台读入字符 并不会回显到控制台
6.getche()是从控制台中读取一个字符的函数
char ch;
getche(ch);
getche()函数位于C标准库头文件<conio.h>中
getche()调用会等待用户按键,从控制台读入字符 并立刻回显到控制台
7.gets()是从输入缓冲区读入一个字符串赋值到指定的字符数组中
char str[2048];
gets(str);
上述代码基本等价于scanf("%s", str);
但是使用scanf("%s", str);
遇到空格会截断字符串 使用gets(str);
遇到空格不会截断字符串
gets()函数位于C标准库头文件<stdio.h>中
gets() 函数的功能是从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间。
gets() 可以直接用于输入带空格的字符串,遇到换行符才结束输入
C语言的输出
1.使用printf()函数进行输出
printf()函数的原型为
int printf(const char *format, ...);
printf()函数位于C标准库头文件<stdio.h>中
printf的控制格式和scanf是差不多的 printf还可以输出相关的转义字符
#include <stdio.h>
int main()
{
// n表示换行的转义字符
printf("Hello World!n");
return 0;
}
printf中想要输出’‘必须要使用转义字符’'才能输出成功
printf("Hello World!\");
就能输出Hello World!
2.printf的输出格式
输出格式 | 含义 |
---|---|
%d %ld %lld | 十进制有符号整数 对应int型变量/long型变量/long long型变量 |
%u | 十进制无符号整数int型变量 |
%f %lf | 单精度浮点数 双精度浮点数 |
%s | 字符数组(串) |
%c | 一个字符 |
%p | 指针指向的内存地址 |
%e | 指数形式的单精度浮点数 |
3.printf的输出的格式控制
1、%d的格式控制格式:
%对齐方式+最长输出位数d
对齐方式:-表示向左对齐 默认向右对齐
如%Nd: N是指定输出的宽度。默认是向右对齐,整形位数小于N位时,,空位补上空格;大于N位时,按实际位数输出。想输出01,可以使用%01d控制输出
2、%f的格式控制格式:
%对齐方式+最长位数.小数点后位数f
对齐方式:-表示向左对齐 默认向右对齐
如%k.nf:默认是向右对齐,最大长度为k位,小数位为n位,整数为则为k-n-1位。 %4.2f 输出类似12.13这样的单精度浮点数 也可以让i留白 %.2f 输出xxxxx. 02这样的单精度浮点数 此时总位数是不定的值