这是我的代码。它允许用户输入数字,然后将其输出为32位二进制数。我面临的问题是我需要找到一种方法,以便在输入后不断询问您的数字,直到" 9999"在结束程序的地方输入(不是"按任意键继续")
#include "stdafx.h"
void db(unsigned int value);
int main(void)
{
unsigned int x;//
printf("%s", "Enter in number:");
scanf_s("%d", &x);//%u=unsinged number,, pointer
db(x);
}//end of main
void db(unsigned int value)
{
.........................
}
答案 0 :(得分:2)
您需要为main
添加一个循环,如下所示:
for (;;) {
unsigned int x;// You may need to move this declaration to outside the loop
printf("%s", "Enter in your student number:");
scanf_s("%d", &x);//%u=unsinged number,, pointer
if (x == 9999) break;
displayBits(x);
}
由于决定继续或停止是在循环体的中间进行的,因此首选使用“永远”循环。有多种方法可以实现这一点,但由于for (;;)
是K& R中描述的方法,我建议将其用于其他替代方案。
答案 1 :(得分:1)
使用:
int main(void)
{
unsigned int x;
while (1)
{
printf("%s", "Enter in your student number:");
scanf_s("%d", &x);
if (x == 9999) break;
else displayBits(x);
}
return 0;
}
此外,puts("\n");
打印2个新行,因为它无论如何都会打印换行符。要仅打印一个新行,请使用puts("");