如何在C中打破while循环

时间:2016-09-05 20:25:26

标签: c loops while-loop

为什么我不能在C中突破这个循环?

        char command[1];
        scanf("%s", command);
        while(1){
                scanf("%s", command);
                if(command == "q")
                        break;
        }

2 个答案:

答案 0 :(得分:1)

根据您尝试执行的操作,您可能希望扫描格式为{ "description": "Watch webNavigation events and block matching URLs", "manifest_version": 2, "name": "webNavigation based block navigation to matched URLs", "version": "0.1", "permissions": [ "notifications", "webNavigation", "tabs" ], "background": { "scripts": ["blockNavigation.js"] } } 而不是%c。这将为您提供一个字符。然后你可以比较" q"像这样:%s

但您可能想要接受多字符命令,在这种情况下,strcmp和更长的缓冲区就是您想要的。

答案 1 :(得分:0)

'command'是一个变量,它包含堆段中某处的内存块地址,而“q”被编译器替换为文本段中内存块的地址,其中保留所有常量字符串。这意味着'=='运算符比较进程内存的不同段中的两个地址。因此它永远不会是真的。 您必须使用strcmp或strncmp函数来比较字符串而不是这些字符串的地址。