include <stdio.h> int main(){ int num = 0;char str[100];while(getchar(str + num) != '\n'){ num++;if(100 == num)break;} printf("%d\n",num);return 0;} 你运行看看,是不是你要的效果!!!
void convert(char str[],int *dp){ sscanf(str,"%*[^0-9]%d",dp);} int main(){ char s[100];int d;scanf("%s",s);convert(s,&d);printf("%d",d);return 0;}
①(wins的控制台中)你的回车相当于末尾加入'\n'然后执行输入。当输入不是EOF,程序进入循环,输出结果。(但程序并未结束,还可以继续输入)②当你输入CTRL+Z后,程序结束:由于你的输出函数在循环内部,因此输入EOF后,程序跳过循环直接结束。