scanf函数如何结束输入,java scanf
scanf ) )函数的使用方法和实践概要:本文论述了基于ANSI,Win95,WinNT上的C/CC/C
scanf ) )函数的用法与实践
概述:
本文论述了scanf ()函数在ANSI、Win 95、Win NT上的C/C语言中的使用方法和实际使用中常见的错误及对策。
关键字:
scanf () )
一.序言
在CSDN论坛的C/C块中,经常看到“scanf ()”函数的使用方法、存在各种错误,我很迷茫”的帖子,所以想写这篇文章。 文中结合自身在学习和编程中的认识和体会,通过具体实例阐述问题,旨在避免初学者正确使用scanf () )函数,走不必要的弯路。
二. scanf ()函数的用法
scanf ) )函数是一种格式输入函数,用于读取通过标准输入设备(键盘)输入的信息。
其调用形式为:scanf (,);
格式字符串包含三种不同的字符:
1、格式说明符:
格式说明符与printf ) )函数的格式说明符基本相同。 但是,它与printf ) )函数的格式字符串的用法略有不同。 请看下表。
格式字符
说明
%d
从键盘输入十进制整数
%o
从键盘输入八进制整数
%x
从键盘输入十六进制整数
%c
从键盘输入文字
%s
从键盘输入字符串
%f
从键盘输入实数
%e
与%f的角色相同
添加格式说明文字表
文字
说明
LL
输入“长”数据
h
输入“短”数据
米
指定输入数据所占的宽度
*
清空一个数据
2、空格:空格将忽略在读取操作期间输入的一个或多个空格(scanf ) )。
3、非空白字符:如果存在非空白字符,scanf ) )函数将在读取时删除与非空白字符相同的字符。
地址表是要读取的所有变量的地址,而不是变量本身。 这与printf ) )函数完全不同,因此请特别注意。 各变量的地址分为“、”。
例如:
#包含
void main () )
{
int i,j;
printf(I,j=? \n ';
scanf('%d,%d ),I,j );
}
上例中的scanf ) )函数首先读取一个整数,去掉下一个输入的逗号,最后读取另一个整数。 如果找不到','这个特定的字符,scanf ) )函数就会结束。 如果参数之间的分隔符是空格,则必须在参数之间输入一个或多个空格。
说明:
)1)对于字符串数组或字符串指针变量,数组名称和指针变量名本身就是地址,因此scanf ) )函数时,不需要在它们之前加上“”操作符。
例如:
#包含
void main () )
{
char *p,str[20];
p=new char[20];
scanf('%s ',p ); /*从健盘输入字符串*
scanf('%s”,str );
printf(%s(n ),p ); /*在画面中输出字符串*
printf(%s(n ),str );
}
)2)格式字符串的“%”每个格式说明符之间可以包含一个整数,表示任何读取操作的最大位数。
在上面的示例中,如果规定字符串指针p只能包含10个字符,则第一个scanf ()函数语句为scanf (),p ()。
在运行时,如果输入字符数超过10个,则p将不再继续读取,后续读取函数scanf('%s”,str )将从第11个字符开始读取。
(3) scanf ) )函数没有精度控制。
例如,scanf('%5.2f ',a ); 是违法的。 不能尝试在此语句中输入两位小数的实数。
)4)在scanf中要求提供变量的地址,如果提供变量名就会出错
例如scanf('%d ',a ); 是违法的。 需要更改为scnaf('%d”,a )。 是合法的。
本文由源21aspnet通过system_mush进行整理和编辑,其版权全部为21aspnet所有。 文章内容是作者个人的观点,并不意味着Java架构师赞同或支持该观点。 转载时请注明文章的出处。