阅读 109

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架构师赞同或支持该观点。 转载时请注明文章的出处。


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐