关于c语言在一个问题c++也可以回答

来源:百度知道 编辑:UC知道 时间:2024/05/24 17:35:12
比如说我随机输入一个数(这个数大小未知但是占4个字节以内)再输入一个运算符号(+ - * / %)再输入一个数。。这些都是一次性输入。要怎么才能把他们区分出来啊。
比如说
输入
12346+54875
区分出来的结果是
12346
+
54875
我这里有个理想化的失败的例子
long int j,j1;
char s;
scanf("%d%c%d",&j,&s,&j1);
printf("%d %d ",j,j1);
中间在加号我就不要了。。就这样。。谁 的想法好。我会再加分的。
根据想法加分。
我要的是。结果。能给点现成的代码吗。。
我的意思是说
直接输入456+2134再回车就能把这一整体分为3部分。。

#################################补充
不知道你要问什么。。。能不能说明白啊??

int num1, num2;
int result;
char calType;
scanf( "%d%c%d", &num1, &calType, &num2 );
getchar(); //刷缓冲
if( calType == '+' ){
result = num1 + num2;
}else{
//以此类推。。。
}
//输出结果
printf( "%d %c %d = %d\n", num1, calType, num2, result );
这样你输入一个式子后,回车就能现实计算过程了。。。

###############################################

就是啊scanf( "%d%c%d", &num1, &calType, &num2 );

其中int num1, num3;
char calType;
中间可以忽略空格的。输入之后可以加getchar()清除0DH和0AH(换行回车)

用指针遍历输入的字符串看看取到的是不是+-*/

利用ASCII码值判断是否为运算符号

有许多方法,用sscanf()函数实现的例子:

//---------------------------------------------------------------------------

#include <stdio.h>

int main(void)
{
char op,temp[15];
long int a,b;
scanf("%[0123456789]%c",temp,&op);/*将运算符前面的数字以