- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
scanf 函数原型.doc
scanf 函数原型
scanf 函数原型
int scanf( const char *format, ... ); scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。 其调用格式为: scanf(格式化字符串,地址表); 函数 scanf() 是从标准输入流 stdin 中读内容的通用子程序,可以读入全部固有类型的数据并自动转换成机内形式。
编辑本段scanf的返回值
scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。 如: scanf(%d,%d, a, b); 如果a和b都被成功读入,那么scanf的返回值就是2 如果只有a被成功读入,返回值为1 如果a和b都未被成功读入,返回值为0 如果遇到错误或遇到end of file,返回值为EOF。 且返回值为int型. 例:使用scanf函数输入数据。 #includestdio.h int main() { int a,b,c; printf(输入 a, b, c\n); scanf(%d,%d,%d, a, b, c); printf(a = %d b = %d c = %d\n, a, b, c); fflush(stdin); return 0; } 注意上面的scanf(%d,%d,%d,a,b,c);中%d,%d,%d之间有逗号,在输入数据时也要加逗号,如果去掉逗号,输入时就不用逗号,而用空格,tab键或回车键将各个数据隔开
编辑本段格式字符说明
在 C99 中,format 用 restrict 修饰。 format 指向的控制串由以下三类字符组成:
格式说明符
转换字符(就是%后跟的部分) a 读浮点值(仅适用于 C99) A 读浮点值(仅适用于 C99) c 读单字符 d 读十进制整数 i 读十进制、八进制、十六进制整数 e 读浮点数 E 读浮点数 f 读浮点数 F 读浮点数(仅适用于 C99) g 读浮点数 G 读浮点数 o 读八进制数 s 读字符串 x 读十六进制数 X 读十六进制数 p 读指针值 n 至此已读入值的等价字符数 u 读无符号十进制整数 [ ] 扫描字符集合 % 读 % 符号(百分号) 附加格式说明字符表修饰符说明 L/l 长度修饰符 输入长数据 h 长度修饰符 输入短数据 W 整型常数 指定输入数据所占宽度 * 表示本输入项在读入后不赋值给相应的变量
空白符
空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。
非空白符
一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。 说明: (1)%s 表示读串而 %d 表示读整数。格式串的处理顺序为从左到右,格式说明符逐一与变元表中的变元匹配。为了读取长整数,可以将 L / l 放在格式说明符的前面;为了读取短整数,可以将 h 放在格式说明符的前面。这些修饰符可以与 d、i、o、u 和 x 格式代码一起使用。 (2)默认情况下,a、f、e 和 g 告诉 scanf() 为 float 分配数据。 如果将 L / l放在这些修饰符的前面,则 scanf() 为 double 分配数据。使用 L 就是告诉 scanf(),接收数据的变量是 long double 型变量。 (3)如果使用的现代编译器程序支持 1995 年增加的宽字符特性, 则可以与 c 格式代码一起,用 l 修饰符说明类型 wchar_t 的宽字符指针;也可以与 s 格式代码一起,用 l 修饰符说明宽字符串的指针。l 修饰符也可以用于修饰扫描集,以说明宽字符。 (4)控制串中的空白符使 scanf() 在输入流中跳过一个或多个空白行。空白符可以是空格(space)、制表符(tab)和新行符(newline)。 本质上,控制串中的空白符使 scanf() 在输入流中读,但不保存结果,直到发现非空白字符为止。 (5)非空白符使 scanf() 在流中读一个匹配的字符并忽略之。例如,%d,%d 使 scanf() 先读入一个整数,读入中放弃逗号,然后读另一个整数。如未发现匹配,scanf() 返回。 (6)scanf() 中用于保存读入值的变元必须都是变量指针,即相应变量的地址。 对于字符串数组或字符串指针变量,由于数组名和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上操作符。 (7)在输入流中,数据项必须由空格、制表符和新行符分割。逗号和分号等不是分隔符,比如以下代码
文档评论(0)