请考虑以下代码:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"declaration": false,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"sourceMap": true
},
"files": [
"typings/main.d.ts"
],
"exclude": [
"node_modules",
"typings/browser.d.ts",
"typings/browser/**"
],
"compileOnSave": false
}
我的直觉说应该从第二次迭代到达断点
#include<stdio.h>
/* Makes you guess a number and predicts it.
*/
int main(void)
{
short guess=0;
_Bool first_time="TRUE";
printf("Guess a number from 1 to 100\n");
printf("Lemme guess it\n");
printf("Press n if the guess is wrong, y otherwise\n");
do
{
if (first_time)
{
first_time="FALSE";
}
else
{
printf("Break point"); // This point is never reached while execution
while (getchar() != '\n')
; // Waste the buffer till the newline character
}
printf("\nMy guess : %d",++guess);
printf("\nAm i right ? ");
}while( getchar() != 'y' );
return 1;
}
循环。但它没有发生。
有人可以解释原因吗?
注意:
编译器:gcc版本4.9.2(Debian 4.9.2-10)
答案 0 :(得分:1)
您要将字符串分配给_Bool类型的类型。您可能已收到警告,指出您正在指定一个整数类型的指针,或类似的东西。你应该使用0或1作为_Bool类型。
答案 1 :(得分:0)
如果你打印first_time的值,你会发现,first_time总是1。 请在这里查看他_Bool(http://en.cppreference.com/w/c/language/arithmetic_types#Boolean_type)。
你必须加入stdbool.h,添加使用链接:first_time = true;