0.常见的输入函数
scanf() 可输入多种类型的数据
getchar() 输入单个字符
getche() 输入单个字符
getch() 输入单个字符
gets() 获取一行数据,并作为字符串处理
1.printf用法详解
1.2输出控制符
%d
%ld
%c 字符型
%s 字符串
%f 单精度的浮点数
%lf 高精度的浮点数
%x 十六进制的形式输出
%#x 十六进制标准形式
c语言中的printf函数,有一个坑,详情见“运算符和表达式章节
2.scanf
scanf(“<格式化字符串>”, <地址表>);
2.1 输入函数原理
详情也可以看 章节 “关于 char 的那一章节。
输入函数的原理:
在输入函数中包含了 scanf()函数和 getchar()函数,它们都是从键盘上来读取我们的数据,但它们不是直接从键盘上来读取我们的数据。它们和键盘之间有一个区域叫缓冲区。输入函数先来看缓冲区中是否有数据,如果有,它直接就拿走了,不需要从键盘输入,如果缓冲区什么都没有,则需要从键盘输入,再拿走
代码:getchar() 此时先输入一个字符 例如输入一个 A 吧!
分析:在程序开始运行之后,缓冲区里什么都没有,我们只能通过键盘输入A ,为了让字符**A 进入缓冲区 我们其实不知不觉中输入了 \n 最终在缓冲区里出现的是 A\n
2.2scanf的常见问题
3.putchar
4.getcahr
关于putchar和getchar的详细细节,看笔记 “1.关于char“
只能输入或者输出一个字符,能输出字符串。
5.puts
puts函数输出字符串并换行
调用格式为puts(s)
其中s为字符串变量(字符串数组 , 字符串指针)
puts函数的作用于 printf(“%s\n”,s) 相同
int main()
{
char s[20], *f;
strcpy(s, “Hello! Turbo C2.0″);
f=“Thank you”;
puts(s);
puts(f);
}
注意:puts函数只能输出字符串,不能输出数值或者进行格式变换
6.gets
gets(n) n是字符串数组
gets() 函数用来读取字符串直到回车结束,回车符不属于这个字符串,
6.1 gets和scanf读取字符串时的差异
gets()函数与 scanf(”%s”,&s) 相似,但不完全相同
char n[20] ;
// scanf("%s\n",n) ;
gets(n) ;
printf("%s",n) ;
使用scanf函数数字符串时存在啊一个问题,如果输入了空格会认为输入字符串结束,空格后的字符将作为下一个输入项处理
gets()函数接收输入的整个字符串直到回车为止
7.getche
getche()是一个比叫有意思的 输入函数,他没有缓冲区,输入一个字符后会立即读取,不用等待用户按下回车键,这是它和scanf(),getchar()的最大区别。
char n ;
n = getche() ;
printf("%c",n) ;
// 没有按下回车就直接输出了,像这种情况,一般不用这个函数
8.getch()
getch()也没有缓冲区,输入一个字符会立即读取,不用按下回车键,这一点和getche()相同。但getch()的特别之处是getch()没有回显,看不到输入的字符。(回显就是在控制台显示用户输入的字符;没有回显,就不会显示用户输入的字符)