C语言问题 主要关于输入函数 scanf getchar c语言中scanf 和getchar区别
c\u8bed\u8a00 scanf getchar\u8fde\u7528\u7684\u95ee\u98981\u90a3\u4e2a\u56de\u8f66\u7b26\u6ca1\u6709\u4f34\u968f\u7740scanf\u8bed\u53e5\u7684\u7ed3\u675f\u800c\u6d88\u5931\uff1b
2scanf\u8ba4\u4e3a\u56de\u8f66\u7b26\uff0c\u7a7a\u683c\u7b26\u662f\u5206\u9694\u7b26\uff0c\u4f1a\u81ea\u52a8\u8df3\u8fc7\uff0c\u56e0\u800c\u4e0d\u4f1a\u5f71\u54cd\u4e0b\u4e00\u4e2ascanf\u3002
3getchar\u662f\u8bfb\u5165\u4e00\u4e2a\u5b57\u7b26\uff0c\u4e0d\u7ba1\u662f\u4e0d\u662f\u5206\u9694\u7b26\uff0c\u90fd\u4e0d\u4f1a\u8df3\u8fc7\u3002
\u524d\u4e24\u4e2a\u95ee\u9898\u8f93\u51fa\u7ed3\u679c\u662f\u4e00\u6837\u7684\u3002\u5f53\u7136\uff0cch=getchar()\uff1b\u5e94\u6539\u4e3ach[i]=getchar();\u5e26\u7a7a\u683c\u65f6\uff0c\u8981\u628a\u63a7\u5236\u5faa\u73af\u53d8\u91cf\u6539\u4e3a20\uff1b\u540e\u9762\u7684\u95ee\u9898\u5e94\u8be5\u662fscanf\uff08\u201c%s\u201d\uff0cstr\uff09\uff1b\u4e0egets\uff08str\uff09\uff1b\u7684\u533a\u522b\uff0c\u6b64\u65f6\uff0cscanf\u4e2d\u7a7a\u683c\u3001\u56de\u8f66\u3001\u8df3\u683c\u90fd\u8868\u793a\u7ed3\u675f\uff0c\u800cgets\u4e2d\u4e3a\u4e00\u4e2a\u5b57\u7b26
《1》scanf("a=%db=%d", &a, &b);这个语句a=%d后面没空格输入时可不可以加空格,为什么如果加了之后程序怎么运作的,我指的是内部;答:可以加空格,%表示是格式化输入,就代表你即将输入的数据类型,int、float等等。例如scanff("%d,%d", &a, &b)是两个输入的数字之间需要有相应的逗号的,一般是以空格和回车区分的。具体的你最好自己试验一下各种情况,加深理解。
《2》scanf("%f%e", &x, &y);这个语句连续输入两个的是数字 系统怎么判定我输入的哪个部分是第一个哪个部分是第二个,另外这是两个浮点数。是不是按小数点区别的,怎么判定的
答:按照输入的数据顺序来判断第一个和第二个的啊,至于小数点的话,计算机只认识0和1,比如0代表无小数点,1代表有小数点,对于浮点数会有单独的整数位和小数位的(我的理解,很多东西忘了也许会有错误,别轻信我的答案)
scanf("a=%db=%d", &a, &b);
scanf("%f%e", &x, &y);这是两个语句我是否需要分别输入如果可以分别输入那中间可以用什么符号隔开是回车换行吗
答:一般是以空格和换行符来区分的(这个我也不确定)
%c是字符格式,是针对单个字符的。如果你输入的是一个整型数,会根据ASCII码来进行转换成对应的字符。
PS:scanf是输入流,你可以找找相关资料看看。
getchar
你只能输入一个字符 程序就会立马保存
而scanf 你只要不输入回车之类的 程序是不会保存的 认为你还没输入玩
你可以在程序的结尾处放一个
scanf("%d", &a);
和放一个
getchar();
你就知道效果了
扩展阅读:为什么不建议孩子学编程 ... c#和java哪个前景好 ... c语言输入输出函数 ... c# 回调函数 ... 学c#有前途吗 ... c语言数组输入一组数 ... c c++ c# ... c语言基础知识入门 ... c语言中字符输入函数 ...