2017-05-29 33 views
-4

我昨天開始學習C語言,並做了一個簡單的二進制轉換器。它可以在我的PC上正常工作,但是,除了could9以外,它不適用於大多數在線代碼運行程序(編譯器)。它看起來像scanf函數一般與在線IDE不兼容?scanf對在線跑步者不起作用

這是代碼。

#include <stdio.h> 
#include <string.h> 

int main(){ 

    int a; 
    int b; 
    int c[255]; 
    char opt[100]; 

    printf("10進數の値を入力してください > "); 
    scanf("%d", &a); 
    printf("計算式を表示しますか? y(yes) or n(no) > "); 
    scanf("%s", opt); 

    if(strcmp(opt, "y") == 0){ 
     printf("\n計算式: \n"); 
    } 

    int i = 0; 
    while(a > 0){ 
     b = a/2; 
     c[i] = a % 2; 

     if(strcmp(opt, "y") == 0){ 
      printf("%d ÷ 2 = %d 餘り %d\n", a, b, c[i]); 
     } 

     a = b; 
     i++; 
    } 

    printf("\n2進數: "); 

    int j; 
    for(j = i-1; j >= 0; j--){ 
     printf("%d", c[j]); 
    } 

    printf("\n"); 
    return 0; 
} 

任何意見將不勝感激。

+0

你得到了什麼錯誤? – CinCout

+0

你沒有設置輸入? [ideone上的DEMO](http://ideone.com/LZcUMF) – BLUEPIXY

回答

1

我的心理能力告訴我,你期待這些在線編譯器提示你輸入(如在終端窗口中運行程序)。不幸的是,大多數在線編譯器並非如此。相反,在您輸入全部的輸入內容的地方有一個文本框,您可以在程序的標準輸入中輸入該輸入。

例如,取這個小程序:

#include <stdio.h> 

int main() 
{ 
    char c; 

    printf("Gimme a character! "); 
    fflush(stdout); 
    scanf(" %c", &c); 

    printf("You typed in '%c'! Yay! :)\n", c); 
} 

編譯和在終端運行,這可能產生在該窗口下面的(輸入爲粗體):

給我一個字符! f
您輸入'f'!好極了! :)

但在網上編譯器不會提示您輸入運行,這可能是這樣的:

給我一個字!你輸入''!好極了! :)

通過在提供的文本框中輸入輸入(它取決於在線編譯器),您可以以這種方式給程序提供輸入。

STDIN:

˚F

輸出:

給我一個字!你輸入'f'!好極了! :)