5 C语言-scanf基本用法
scanf():通过键盘将数据输入到变量中,初级使用中一般有以下几种用法及常见错误:
用法一:scanf("输入控制符",输入参数);
功能:将从键盘输入的字符(字符!字符!字符!)转化为输入控制符所规定格式的数据,然后存入“输入参数”的内存空间中(取地址符的意义)
#include<stdio.h>
int main()
{
int i;
scanf("%d",&i);
printf("i=%d\n",i);
return 0;
}
/*vs2010测试结果
----------------------------------------
123
i=123
m123
i=-858993460
123x
i=123
----------------------------------------
*/
用法二:scanf("非输入控制符 输入控制符",输入参数);
功能:将从键盘输入的字符(字符!字符!字符!)转化为输入控制符所规定格式的数据,然后存入“输入参数”的内存空间中(取地址符的意义),但在输入控制符前加了非输入控制符
【注意】键盘输入时,非输入控制符必须原样输入
#include<stdio.h>
int main()
{
int i;
scanf("m%d",&i);
printf("i=%d\n",i);
return 0;
}
/*vs2010测试结果
----------------------------------------
123
i=-858993460
m123
i=123
m123x
i=123
----------------------------------------
*/
用法三:一次给多个变量键盘赋值
#include<stdio.h>
int main()
{
int i,j;
scanf("%d %d",&i,&j);
printf("i=%d,j=%d\n",i,j);
return 0;
}
/*vs2010测试结果
----------------------------------------
12 34
i=12,j=34
12
34
i=12,j=34
----------------------------------------
*/
面对用户不知如何正确输入多个值时,以上代码可进行以下改进,及用printf加一行输入样式提示信息
#include<stdio.h>
int main()
{
int i,j;
printf("请输入两个数中间以空格隔开:\n"); //提示行
scanf("%d %d",&i,&j);
printf("i=%d,j=%d\n",i,j);
return 0;
}
/*vs2010测试结果
----------------------------------------
请输入两个数中间以空格隔开:
12 34
i=12,j=34
----------------------------------------
*/
用法四:非法输入与用while屏蔽非法输入
//在输入多个变量值时,输入i时会误碰键盘导致非法输入,如以下代码,字符12输入后,其后面的字符均为非法输入,若不进行处理,会将非法输入赋值给变量j
#include<stdio.h>
int main()
{
int i;
int j;
scanf("%d",&i);
printf("i=%d\n",i);
scanf("%d",&j);
printf("j=%d\n",j);
return 0;
}
/*vs2010测试结果
--------------------------------------------------------
12ffghgdfhdf
i=12
j=-858993460
--------------------------------------------------------
*/
将以上代码改进如下,在代码中间加入一段while循环语句,可解决i的误输入问题
#include<stdio.h>
int main()
{
int i;
char ch;
int j;
scanf("%d",&i);
printf("i=%d\n",i);
while((ch=getchar())!='\n') //屏蔽i输入时因误碰键盘导致的非法输入
continue;
scanf("%d",&j);
printf("j=%d\n",j);
return 0;
}
*vs2010测试结果
--------------------------------------------------------
12sfsdgsgdsgsdfgsdfaf34
i=12
34
j=34
--------------------------------------------------------
*/
【小结】如何使用scanf编写出高质量代码
1.使用scanf之前最好先使用printf提示用户以何种形式输入
2.scanf中尽量不要使用非输入控制符,尤其是'\n'
5 C语言-scanf基本用法相关推荐
- c语言scanf s用法,C语言scanf与scanf_s
C语言scanf与scanf_s0 我打编译器是microsoft visual studio 2005,我的源程序如下,注意注释的地方,就是scan函数中的scanf_s函数,程序运行正常,但是当输 ...
- c语言scanf函数用法完全攻略,C语言scanf函数用法完全攻略
本节介绍输入函数 scanf 的用法.scanf 和 printf 一样,非常重要,而且用得非常多,所以一定要掌握. 概述 scanf 的功能用一句话来概括就是"通过键盘给程序中的变量赋值& ...
- C语言scanf函数用法详细解释!!!
函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化输入函数,它从标准输入设 ...
- c语言编译中scanf命令,C语言scanf的用法
scanf()是C语言中的一个输入函数.与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include .(在有一些实现中,printf函数与scanf函数 ...
- C语言scanf函数用法详细解释!
函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化输入函数,它从标准输入设备( ...
- c语言中数组部分输入赋值,c语言scanf对数组赋值
c语言动态数组赋值,,c语言结构体数组赋值,c语言scanf对数组赋值 c语言数组动态赋值,<手把手教你学51单片机-C语言>之六 中断与数码管动态显示,c语言结构体数组赋值,c语言sca ...
- 牛客网循环输入输出测试——C语言scanf和printf用法
在实际的编程中需要自己写出完整的程序,预留好输入的接口,使用while循环接收多个测试用例,C语言在输出时printf要用换行"\n". 字符串输入输出问题见博客:牛客网字符/字符 ...
- c语言scanf中 作用,c语言中scanf的用法
c语言中scanf的用法的用法你知道吗?下面小编就跟你们详细介绍下c语言中scanf的用法的用法,希望对你们有用. c语言中scanf的用法的用法如下: printf和scan函数的使用方法 一 pr ...
- C语言 qsort的用法 模拟EXCEL排序
C语言 qsort的用法 模拟EXCEL排序 题目 Excel可以对一组记录按任意指定列排序.现请编写程序实现类似的功能. 输入 输入的第一行包含两个正整数N(<= 10^5)和C,其中N是记录 ...
- c语言写程序if else,if else用法详解,C语言if else用法完全攻略
if else 语句是一种选择结构,可以让代码选择执行.所谓选择执行,就是"某些代码可能执行,也可能不执行,有选择地执行某些代码". if 的最简单用法 if最简单的格式是: if ...
最新文章
- 如何从MP4视频文件中抽取MP3音频?
- CSS兼容性(IE和Firefox)技巧大全
- Swift: 可变参数
- Spring中@Import注解的作用和使用
- [Baltic2009]Radio Transmission
- 开发十年的程序员论:零基础自学Python,学习路径是什么?深思
- Android Studio中关于9-patch格式图片的编译错误
- 如何使用 ABAP 手动解析 multipart/form-data 格式的数据
- JavaScript 高级——详谈面向对象
- 如何导入maven源文件_如何正确导入maven项目到eclipse?
- Logstash入门简介
- 是否有任何python库可以从自然语言中解析日期和时间?
- 监管大屏系统_“警视” 警务情指一体大屏可视化决策系统
- javax.naming.NameNotFoundException: QueueConnectionFactory not bound
- pe修改rpc服务器不可用,电脑rpc服务器不可用,教你电脑rpc服务器不可用怎么解决...
- 字母c语言ascii码,c语言ascii码对照表
- node.js以及读取写入文件
- 使用GCJ编译Java程序供Matlab调用Java对象方法实践
- 反超苹果,微软重回全球市值第一!
- 打开office报错提示向程序发送命令时出现问题