3 回答
TA贡献1853条经验 获得超18个赞
按F10跳转到scanf输入函数断点,进而按F11就如scanf函数。印象中是在一个.c文件里执行的中断处理标准输入输出的过程,你可以按Alt+8看到其反汇编,其实是一些机器指令发送控制让CPU进行执行的,具体汇编语言我是不太懂的。看那个也比较繁琐,目前也不再流行去使用汇编语言,如果你感兴趣的话,可以去了解C语言的编译过程,编译原理,这就相对更深了。
回到这个问题,接收过程讲的差不多了。用户输入一个数,它应该说是被立即送到一个缓冲区去了。而不是立即接收,变量就获得了值。这是C语言scanf函数的功能设定。它需要接收一个标志一个数据输入完成,可以是空格,可以是回车,或者你给定了的格式,用逗号或者其他,那么就取出了一个数据。结束一个数据的输入。总的scanf函数执行过程,是一个系统缓存入栈出栈的过程。
scanf输入是否正确,是按其格式来判断的,百科名片上有些解析,比如
scanf("%d%d",&a,&b);
如果两个数输入的都不是整形,那么就是0
while(scanf("%d",&a)!=EOF)这是一种判断输入是否正确的方式
TA贡献1802条经验 获得超10个赞
当程序中出现scanf这条语句的时候,系统会停留在这等待用户输入。怎样接收要看你是怎样的输入格式比如scanf(“%d %d”),输入一个字符按 一次空格,如果中间强制用逗号格开的话,输入的时候就要用逗号了。当输入完成时候,按回车即输入完毕,数据储存在变量里。
如果要判断用户是否输入正确,在scanf语句下面加上判断语句就可以了if else,如果需要用户重新输入的话,就需要一个循环语句while
TA贡献1865条经验 获得超7个赞
加一个头文件#include<string>
然后直接string year;后面的就是string name; string grades;什么的,
然后还是用cin接收就行了啊
接收完了你用一个函数去判断是不是数字或者字母
- 3 回答
- 0 关注
- 411 浏览
添加回答
举报