int ch;
do
{
ch = getchar();
printf("ch = %d\n",ch);
}while(ch != '\n' && ch != EOF);在这种情况下,输入1234的输出为
ch = 49
ch = 50
ch = 51
ch = 52
ch = 10但就像这样给它
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);在本例中,input = 1234的输出为
ch =10为什么这会发生在这里?有没有人能解释一下...为什么输出和以前不一样??
scanf在这里到底是如何工作的?
发布于 2012-04-30 04:02:22
对scanf的调用从流中读取数据。当您稍后再次尝试使用getchar从流中读取时,由scanf读取的字符已被使用,不会再次读取。
此外,有关格式字符串的有效值,请参阅scanf的文档。
https://stackoverflow.com/questions/10375486
复制相似问题