请问对于getchar如何修改,避免空格与Tab的干扰,以下代码如何解释
#include<stdio.h>
int main(){
int n = 0;
printf("请输入一串数字:");
scanf("%d",&n);
getchar();
while ((getchar()) != '\n')
{
printf("");
}
printf("请输入一个字符作为a的值:");
char a = getchar();
printf("##%c##\n",a);
}
/*
对于getchar,Tab或空格会结束上一次输出
开始getchar的读入
*/
不知道你这个问题是否已经解决, 如果还没有解决的话:要求:打印转换结果,只打印第一组数字;
#include<stdio.h>
int main()
{
int ch;
int num=0;
printf("请输入待转换的字符串:");
do
{
ch=getchar();//得到的字符的进制,所以‘1、2、3’等数字字符的十进制分别为‘49,50、51’等
// printf("%d\n",ch);
if(ch>='0'&&ch<='9')
{
num=num*10+(ch-'0');//0字符的十进制位48
}
else//遇到小数点或空格等其他符号将数字时
{
if(num){//已经有一组数字了,退出循环
break;
}
}
}
while(ch!='\n');
printf("结果是:%d",num);
return 0;
}
#include<stdio.h>
int main()
{
int ch;
int num;
printf("请输入待转换的字符:");
while((ch=getchar())!='\n')
{
if(ch>='0'&&ch<='9')
{
num=num*10+ch-'0';
}
else
{
if(num)
{
break;
}
}
}
printf("结果是:%d",num);
return 0;
}
不知道你说的干扰是什么意思,是忽略的意思么?
char ch;
while (1)
{
ch = getchar();
if (ch == '\t' || ch == ' ') continue;
if (ch == '\n') break;
...
}