getchar的输出
在这种情况下,输入1234的输出为getchar的输出,c,C,在这种情况下,输入1234的输出为 int ch; do { ch = getchar(); printf("ch = %d\n",ch); }while(ch != '\n' && ch != EOF); 但是像这样给予 ch = 49 ch = 50 ch = 51 ch = 52 ch = 10 在这种情况下,输入=1234的输出为 char
int ch;
do
{
ch = getchar();
printf("ch = %d\n",ch);
}while(ch != '\n' && ch != EOF);
但是像这样给予
ch = 49
ch = 50
ch = 51
ch = 52
ch = 10
在这种情况下,输入=1234的输出为
char chs[100] = {0};
unsigned int u = 0;
int sign = 1,k=0;
if(scanf("%[- 0-9]",&chs[0])== 1)
{
int ch;
do
{
ch = getchar();
printf("ch = %d\n",ch);
}while(ch != '\n' && ch != EOF);
为什么会发生在这里???
谁能解释一下。。。为什么输出与以前不一样
scanf在这里的工作情况如何?调用
scanf
从流中读取数据。当您稍后尝试使用getchar
再次从流中读取时,scanf
读取的字符已被使用,不再读取
另外,有关格式字符串的有效值,请参阅文档。对
scanf
的调用从流中读取数据。当您稍后尝试使用getchar
再次从流中读取时,scanf
读取的字符已被使用,不再读取
此外,有关格式字符串的有效值,请参阅文档。您在对scanf的调用中已经使用了1234个字符,所以剩下的是行尾字符(LF=10)您在对scanf的调用中已经使用了1234个字符,所以剩下的是行尾字符(LF=10),scanf可能正在抢占一整条线。此代码已损坏,请不要同时使用scanf和getchar。此外,scanf可能会占用整行代码。此代码已损坏,请不要同时使用scanf和getchar。
ch =10