目录
输入输出
1.按格式输入输出
2. 按格式输入
3. 按字符输入输出
输入:
输出:
垃圾字符回收
1. 通过空格回收
2. %*c
3.getchar()
强制类型转换
输入输出
分为按格式输入输出和按字符输入输出
1.按格式输入输出
通过 man 3 printf 查看 printf函数
#include <stdio.h>
int printf(const char *format, ...);
功能:按照指定的格式向终端输出
参数:format:字符串"hello"
格式:
"%d" int
"%hd" short
"%ld" long
"%lld" long long
"%f" float
"%lf" double
"%c" char
"%s" 字符串
"%#x" 十六进制
"%#o" 八进制
"%p" 地址
"%e" 指数
"%-m.n" 含义:
.n:打印小数点后n位
m:位宽 // 当 m 大于实际位宽的时候,按 m 输出
// 当 m 小于实际位宽的时候,按照实际位宽输出
-:左对齐,默认右对齐
返回值:输出字符的个数(不常用)
2. 按格式输入
#include <stdio.h>
int scanf(const char *format, ...);
功能:按格式从终端输入
参数:同 printf;
返回值:正确输入数据的个数
当第一个数输入格式不正确时,会直接返回0
练习:
一个水分子的质量约为3.0*10^-23g,1夸脱水大约有950g,
编写一个程序,要求输入水的夸脱数,然后显示这么多水中包含多少水分子。
表示:3.0e-23 打印格式:%f 或 %e
3. 按字符输入输出
输入:
int getchar(void);
功能:从终端输入一个字符
参数:无
返回值:输入字符的ASCII值
#include<stdio.h>int main(int argc, const char *argv[])
{int ret = getchar();printf("%d\n", ret);return 0;
}
输出:
int putchar(int c);
功能:向终端输出一个字符
参数:c:要输出字符的ascii值
返回值:要输出字符的ascii值
putchar(10)===> putchar('\n')
垃圾字符回收
#include<stdio.h>int main(int argc, const char *argv[])
{char str;char ch;scanf("%c%c", &str, &ch);printf("str=%c ch=%c\n", str, ch);
}
1. 通过空格回收
scanf("%c %c", &str, &ch);
可以回收一个或多个的空格、回车、tab
2. %*c
回收任意一个字符
scanf("%c%*c%c", &str, &ch);
3.getchar()
只能回收任意一个字符,一般用于循环里面
char ch;while (1){scanf("%c", &ch);getchar();printf("%c\n", ch);}
强制类型转换
int a = 5;float b = (float)a / 2;printf("%f\n", b); // 2.500000printf("%d\n", a); // 5