【发布时间】:2020-03-17 14:09:01
【问题描述】:
我的目标是创建一个程序来检查特定位(由用户输入)是否设置为硬编码整数(在本例中为 159)。这段代码可以编译,但是当我输入我想要的整数时,控制台会停顿大约一秒钟,然后退出程序而没有错误消息。没有执行任何 printf() 函数,因为在控制台退出之前不会在控制台上打印任何其他内容。我是 C 的新手,所以我需要一些帮助。
#include <stdio.h>
int main() {
int x = 159;
int position = 1;
scanf("%d", position);
if (position == 0) {
position = 1;
printf("if");
}
else {
for (int i = 0; i < position; i++) {
position *= 2;
}
printf("else");
}
printf("%d", position);
if ((x & position) != 0) {
printf("true");
}
else {
printf("false");
}
}
【问题讨论】:
-
请仔细阅读您关于
scanf及其预期论点的书籍或教程。您需要将 指针 传递给变量。 -
你为什么要使用
scanf呢?int main(int argc, char **argv) { int position = argc > 1 ? strtol( argv[1], NULL, 10) : 1;...学习 C 的人的良好经验法则:在您理解该语言之前不要使用 scanf。它不适合新手。