易截截图软件、单文件、免安装、纯绿色、仅160KB

C里面的字符输入

C/C++ code:

#include<stdio.h>
void main()
{

unsigned int v,u;
char c1,c2;

scanf("%o,%o",&u,&v);
scanf("%c,%c",&c1,&c2);


printf("u=%o,v=%d\n",u,v);
printf("c1=%c,c2=%d\n",c1,c2);

}


比如我输入v,u的值为45,c1,c2我输入1,c1和c2得不到正确的结果。

如果在语句
C/C++ code:

scanf("%c,%c",&c1,&c2);


改为
C/C++ code:
scanf(" %c,%c",&c1,&c2);
注意:第一个%c前面有空格,就能得到正确的结果,为什么呢?
scanf的格式化字符串中为什么要',',你输入的时候有没有输入','

第一个scanf输入结束后回车还留在缓冲区里面,因此第二个scanf来到时直接从缓冲区里面取值给c1了,但如果加了空格——scanf(" %c,%c",&c1,&c2); 就表示缓冲区的值匹配后忽略,因此可以争取运行。
另外:如果想为c1和c2输入整数最好用%d ———— scanf("%d,%d",&c1,&c2);


也可以在两个scanf之间加函数清空缓冲区:fflush(stdin)

为什么在第一种的情况下C2的值为什么是-52呢?

<


相关问答:

jsp中 <c:if test> 相关问题

在查询后将查询出来的值赋给各输入框
<c:if test="${not empty dataValue}">
      fm.SAMPLING_DATE.value=" <c:out value='${dataValue.SAMPLING_DATE}'/ ......

一个简单的c游戏

13个人围成一圈,从第一个人开始顺序报号1,2,3。凡报到3者退出圈子,找出最后留在圈子中的人原来的序号
结果应该是13 可我的程序的结果是11 希望好心人帮改一下
#include <stdio.h>
#include < ......

ftp上传下载c文件方式

在ue中从远程unix用二进制方式下载c文件到本地,修改之后用二进制方式上传到unix中,再用vi打开该文件,每行后面就会有一个^M的换行符,如果采用ascii方式下载,二进制方式上传的话就没有^M,那请问这样会对程序文件 ......

为什么C写DLL文件C、PB能调用VB不能调用

为什么C写的DLL文件C、PB能调用VB不能调用?
VB里为什么有的DLL直接通过引用可以使用?有的需要通过declare申明外部函数?这些DLL有什么差别?

1、为什么PB能通过DECLARE声明而VB不行?
2、如果这个dll中的 ......

关于the c program 的一道题!

编写程序detab, 将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止的地方。假设制表符终止位的位置是固定的,比如每隔n列就会出现一个制表符终止位。
------------------- ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号