我昨天开始学习C语言并制作了一个简单的二元变换器。它在我的电脑上工作正常,但是,除了can9之外,它在大多数在线代码运行器(编译器)上都不起作用。看起来scanf函数通常与在线IDE不兼容?
这是代码。
#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 :(得分:1)
我的通灵能力告诉我你期待这些在线编译器提示你输入(比如在终端窗口中运行程序)。不幸的是,对于大多数在线编译器来说情况并非如此。相反,在某个地方有一个文本框,您可以在程序的标准输入中键入所需输入的 all 。
例如,参加这个小程序:
#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'!好极了! :)