为scanf()函数输入整数后,代码是否继续?
我的目标是创建一个程序,检查是否在硬编码整数(在本例中为159)中设置了特定位(由用户输入)。但是,当我输入所需的整数时,控制台会暂停大约一秒钟,然后在没有错误消息的情况下退出程序。所有printf()函数都不会执行,因为在退出控制台之前,控制台上不会打印任何其他函数。我对C相当陌生,所以我需要一些帮助为scanf()函数输入整数后,代码是否继续?,c,printf,scanf,C,Printf,Scanf,我的目标是创建一个程序,检查是否在硬编码整数(在本例中为159)中设置了特定位(由用户输入)。但是,当我输入所需的整数时,控制台会暂停大约一秒钟,然后在没有错误消息的情况下退出程序。所有printf()函数都不会执行,因为在退出控制台之前,控制台上不会打印任何其他函数。我对C相当陌生,所以我需要一些帮助 #include <stdio.h> int main() { int x = 159; int position = 1; scanf("%d", po
#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");
}
}
#包括
int main(){
int x=159;
int位置=1;
扫描频率(“%d”,位置);
如果(位置==0){
位置=1;
printf(“如果”);
}
否则{
对于(int i=0;i
scanf函数
获取变量的地址
,如scanf(“%d”和位置)代码>
不是变量本身
它会将输入的值放入该地址,因此您需要将&
添加到scanf
中
甚至在那之后。除非您的职位是0
,否则此代码永远不会工作:
else {
for (int i = 0; i < position; i++) {
position *= 2;
}
printf("else");
}
else{
对于(int i=0;i
这是一个不定式循环。它将一直执行,直到position
变得太大,以至于int
没有足够的空间来存储它,所以position
会变成一些不合逻辑的数字,比如未初始化的变量。请仔细阅读您的书籍或教程,了解scanf
及其所需的参数。您需要向变量传递指针。为什么要使用scanf
<代码>int main(int argc,char**argv){int position=argc>1?strtol(argv[1],NULL,10):1;…
对于学习C语言的人来说,最好的经验法则是:在理解语言之前不要使用scanf。这不是给新手的。谢谢你,这真的很有帮助。至于不定式循环,我知道我绝对不能将参数变量放入for循环本身,但我也是个白痴。谢谢你的时间!:)@MartinKiryakov不用客气。不用谢。如果真的对你有帮助,就接受答案。