
#include<stdio.h>#include<math.h>#include<string.h>#include<string>#include<iostream>using namespace std;long int convert_base10(char *num,int base){int len,dig;long int result = 0;len = strlen(num);// printf("len = %d\n",len);// converting to base 10for(int i=0; i<len; i++){ if((num[len-i-1] >= 'A') && (num[len-i-1] <= 'F')) dig = num[len-i-1] - 55; else dig = num[len-i-1] - 48; result += (dig * pow(base,i)); // printf("num[%d] = %d\n",len-i-1,dig);}return result;}voID convert_basei(long int num,int base,string &result1){bool error = false;int pos = 6;char result[7],rem;// initially storing space on all positionfor(int i=0; i<7; i++) result[i] = ' ';while(num){ if((num % base) >= 10) rem = (num % base) + 55; else rem = (num % base) + 48; result[pos] = rem;//printf("result[%d] = %c\n",pos,rem); num /= base;// printf("quotIEnt = %d\n",num); pos--; if(pos < 0 && num > 0) { error = true; break; }}if(error == true) result1 = " ERROR";else result1 = result;// cout<<"result = "<<result1<<endl;}int main(){char num[7];string result;int base1,base2;while(scanf("%s%d%d",num,&base1,&base2) == 3){// printf("num = %s\nbase1 = %d\nbase2 = %d\n",base1,base2); long int temp = convert_base10(num,base1);// printf("temp = %ld\n",temp); convert_basei(temp,base2,result); cout<<result<<endl;}return 0;}解决方法 替换此代码: while(scanf("%s%d%d",&base2) == 3){ long int temp = convert_base10(num,base1); convert_basei(temp,result); cout<<result<<endl;} 有了这段代码,神秘就会消失:
printf("trying to get input\n");while(scanf("%s%d%d",&base2) == 3){ printf("got some input\n"); long int temp = convert_base10(num,result); cout<<result<<endl;}printf("got no input\n"); 总结 以上是内存溢出为你收集整理的c – ideone不显示任何输出全部内容,希望文章能够帮你解决c – ideone不显示任何输出所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)