int ch;
do
{
ch = getchar();
printf("ch = %d\n",ch);
}while(ch != '\n' && ch != EOF);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,输入1234的输出是
ch = 49
ch = 50
ch = 51
ch = 52
ch = 10
Run Code Online (Sandbox Code Playgroud)
但就像这样给它
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);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,输入= 1234的输出是
ch =10
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况?有人可以解释一下......为什么输出不像以前那样?
scanf如何在这里工作?