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读入。做不到这样的话请问该如何解决? 展开
我想将运算符放入一个数组,数字放入另一个数组,就写了下面的代码。
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读入。做不到这样的话请问该如何解决? 展开
1个回答
2015-10-16
展开全部
ungetc(ch,stdin) //把字符ch“放回”输入流
用这个函数大概就够了
用这个函数大概就够了
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询