Ideone does not show any result.

this code has a problem http://www.spoj.com/problems/BASE/ and it works fine on windows and linux, but when I run it on ideone it doesn't show me any output. Can someone tell me what is the reason for this?

#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 10
for(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 position
for(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", num, base1, base2);
    long int temp = convert_base10(num, base1);
//        printf("temp = %ld\n", temp);
    convert_basei(temp, base2, result);
    cout<<result<<endl;
}
return 0;
}
+5
source share
2 answers

Replace this code:

while(scanf("%s%d%d", num, &base1, &base2) == 3)
{
    long int temp = convert_base10(num, base1);
    convert_basei(temp, base2, result);
    cout<<result<<endl;
}

With this code, the mystery will disappear:

printf("trying to get input\n");
while(scanf("%s%d%d", num, &base1, &base2) == 3)
{
    printf("got some input\n");
    long int temp = convert_base10(num, base1);
    convert_basei(temp, base2, result);
    cout<<result<<endl;
}
printf("got no input\n");
+3
source

I suspect a mistake in ideone.com.

I cloned your source and input with a few minor tweaks and didn't see the output at all. Since I expected to see some kind of conclusion, I sent a report using the "Report a bug / make an offer" link on the page.

, .


Ideone

Date: Fri, 8 Mar 2013 12:18:49 +0100
From: Filip Wielewski <wiele@s...>
To: paj-ideone@j...
Cc: contact@i...
Subject: Re: Please see this question on StackOverflow for an explanation...

Hi [Johnsyweb],

thank you for letting us know about this issue. There is indeed
some problem with the original source code posted by Vijay Jain.
We will examine it and try to fix it very soon.

Regards,
Filip Wielewski
Ideone Team

2013/2/16 Ideone bug/suggestion <noreply@i...>

    Ideone bug/suggestion

    category: compiler/interpreter
    type: bug
    date: 2013-02-16 08:38:16
    user: johnsyweb
    e-mail: paj-ideone@j...
    site: http://ideone.com/Q8Kv9m
    compiler: C++ (ver: gcc-4.7.2, id: 1)
    description: Please see this question on StackOverflow for
    an explanation: http://stackoverflow.com/q/14907730/78845

    My response:
    http://stackoverflow.com/a/14908061/78845

    Regards;


    --paj
0

All Articles