美文网首页c语言程序员关于学习这件事
【C语言】-数据输入-scanf( )和getchar( )

【C语言】-数据输入-scanf( )和getchar( )

作者: 真一 | 来源:发表于2015-11-17 20:18 被阅读173次

格式化输入函数scanf( )

scanf( )功能:

按照指定的格式读入键盘上输入的若干个任意类型的数据,存入到argument参数所指向的内存单元,函数返回值为读入并赋给argument的数据个数,出错则返回0。

scanf( )使用形式:

scanf("格式字符串",输入项首地址列表);
scanf( )函数执行时将输入的数据流按指定格式转换为数据,存入相应的存储单元中。

格式字符串:

%[*][width][F|N|h|l]type

(1)类型字符type:

类型字符 功能说明
d或i 以十进制有符号形式输入整数
u 以十进制无符号形式输入整数
o 以八进制无符号形式输入整数
x或X 以十六进制形式输入整数
f 以小数形式输入实数
c 输入单个字符
s 输入一个字符串
e或E,g或G 与f作用相同,e,g可替换f

(2)宽度指示符width:
width是一个十进制正整数的形式,表示该输入项最多可接收的字符个数。也就是说,读取输入数据中相应的n位,按需要的位数赋给相应的变量,多余部分被舍弃。但读取过程中如遇到空格、Tab或其他不可转换的字符,输入个数可少于宽度指示。

(3)赋值抑制字符"*":
表示本输入项对应的数据读入后,不赋给相应的变量,该变量的数据将由下一个格式指示符指定的数据输入。

scanf( )函数的数据输入操作:

(1)输入多个数据的分隔处理:如果在格式字符串中不包含除了格式指示符之外的普通字符,则在输入多个数据时,可以使用空格隔开,或者用Tab键分开,或者以回车键隔开。
(2)当“格式字符串”中出现普通字符时,普通字符不会显示,必须在规定输入时原样输入。
(3)当scanf( )函数中的格式字符串中出现转义字符(如"\n"),系统并不把它当转义字符解释,从而产生一个控制操作,而是将其视为普通字符,所以也要原样输入。
(4)输入数据时,遇到以下情况,系统认为该数据输入结束:

  • 遇到空格、回车键或者Tab键。
  • 遇到输入域宽度结束。
  • 遇到非法输入。例如在输入数值数据时,遇到字母等非数值符号(数值符号仅由数字字符0~9、小数点和正负号构成)。

(5)使用格式说明符"%c"输入单个字符时,空格和转义字符均作为有效字符被输入。

单个字符的输入函数getchar( )

getchar( )功能:

从标准输入设备(键盘)输入一个字符,并返回输入字符的ASCII值。

注意:

  • getchar( )只能用于单个字符的输入,一次只能输入一个字符。
  • 使用getchar( )输入字符是,需按下回车键表示输入结束。
  • getchar( )将回车也作为一个输入,所以输入连续的两个数据时需要注意。
  • 如果只是想输入一个字符并输出,也可以使用在putchar( )函数中嵌入getchar( )函数的形式。putchar(getchar( ));

相关文章

  • 【C语言】-数据输入-scanf( )和getchar( )

    格式化输入函数scanf( ) scanf( )功能: 按照指定的格式读入键盘上输入的若干个任意类型的数据,存入到...

  • 嵌入式学习笔记19.11.12

    c语言输入函数: ⒈scanf()所需头文件stdio.h ⒉getchar()所需头文件stdio.h 输入后存...

  • 随笔

    getchar()和scanf经验 1,getchar()和scanf都是从缓冲区读取数据,如果首先使用了scan...

  • C++ 输入输出(cin 和 cout)

    在 C 语言中,我们通常会使用 scanf 和 printf 来对数据进行输入输出操作。在C++ 语言中,C 语言...

  • 认识一下C++ 《输入输出cin 和cout》

    在C语言中,通常会使用 printf 和 scanf 来对数据进行输入输出操作。 在C++语言中,C语言的这一套输...

  • 2020-03-05

    笔记:1.scanf输入结束后,会引文回车键将 换行赋给c 2.解决办法,最简单,加getchar; ...

  • 在流中读取空白字符

    在 C/C++ 中,用 scanf 和 getchar 是可以拿到流里面的空白字符的: 但是 std::cin 默...

  • 笔记简记

    1. 字符输入函数 getchar () 2.字符输出函数 putchar() 3.格式化输入函数 scanf()...

  • scanf函数

    scanf函数 一、是什么? C语言下的scanf()函数是样式化输入函数,也称为阻塞式函数,有C语言自带的库提供...

  • C语言数组以及循环

    输入缓存流残留问题解决方案 getchar();吸收缓存流里面的一个字符scanf("%c",&ch)getc(s...

网友评论

    本文标题:【C语言】-数据输入-scanf( )和getchar( )

    本文链接:https://www.haomeiwen.com/subject/citlhttx.html