我正在尝试创建一个扫描两个变量的do-while循环,但是当我输入" exit"时,我想让函数循环出去。 这是我的代码:
char var1;
char var2;
do {
scanf("%s %s", &var1, &var2);
} while ("Some argument that I don't know")
我尝试了(strcmp(&var1,'quit') != 0)
这样的事情作为论据,但它不起作用。
答案 0 :(得分:1)
您的变量类型错误。它必须是 char 数组才能保存文本字符串。
使用strcmp
检查“退出”
类似的东西:
char var1[32] = {0};
char var2[32] = {0};
do {
scanf("%31s %31s", var1, var2);
}while ((strcmp(var1, "exit") != 0) && (strcmp(var2, "exit") != 0));
另一种方法是让程序在第一次输入“退出”时退出,如下所示:
#include <stdio.h>
int main() {
char var1[32] = {0};
char var2[32] = {0};
do {
scanf("%31s", var1);
if (strcmp(var1, "exit") == 0) break;
scanf("%31s", var2);
if (strcmp(var2, "exit") == 0) break;
printf("%s %s\n", var1, var2);
}while (1);
return 0;
}
答案 1 :(得分:0)
我认为您的一个问题是您正在尝试将字符串扫描到char变量中:
char var1创建一个新的char变量,一次只能容纳一个字符。
scanf中的%s扫描字符串 - 字符数组。
将变量初始化为:
char * var1;
char * var2;
允许scanf将字符串扫描到它们中。之前的 strcmp 行可能会在此之后起作用 - 如果你想检查这两个变量,你还需要一个额外的条件。