首页 > 解决方案 > 仅输入 1 和 0

问题描述

我只想在 (while) 中验证 1 和 0,但是使用此代码时出现错误。

do {
    printf("kostas :");
    gets(pinakasa[i].noshleia);
} while (pinakasa[i].noshleia != 1 || piakasa[i].noshleia != 0);

标签: c++

解决方案


gets()char[]用从 读入的字符填充缓冲区STDIN。您正在尝试将char*指针(achar[] 衰减为)与一个int值进行比较,但这是行不通的。您需要进行字符串比较,例如:

do {
    printf("kostas :");
    gets(pinakasa[i].noshleia);
}
while (
    (strcmp(pinakasa[i].noshleia, "1") != 0) &&
    (strcmp(pinakasa[i].noshleia, "0") != 0)
);

推荐阅读