C语言可不可以在读入一个数据之前判断数据类型?

我想写一个四则运算的计算器,效果是对方输入一个类似“5x6-2x4”的式子可以算出答案。我想将运算符放入一个数组,数字放入另一个数组,就写了下面的代码。inti,k1=0... 我想写一个四则运算的计算器,效果是对方输入一个类似“5x6-2x4”的式子可以算出答案。
我想将运算符放入一个数组,数字放入另一个数组,就写了下面的代码。

int i,k1=0,k2=0,t;
char a[100];
double b[100];
printf("来,把你的算式告诉我~(等号不用加喔) :\n");
while(1){
t=getchar();
if(t=='\n') break;
else if(t>='0'&&t<='9')
b[k2++]=t;
else
a[k1++]=t;
}

但是这串代码不能读入两位数,比如“43x2-4x6”,它读到43时会把43拆成两个字符。有没有办法在读入数据前判断它是不是数字,是的话用scanf读入,不是用getchar读入。做不到这样的话请问该如何解决?
展开
 我来答
匿名用户
2015-10-16
展开全部
ungetc(ch,stdin) //把字符ch“放回”输入流

用这个函数大概就够了
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式