我有一些代码,我问用户是否愿意继续。如果他们输入:
no
,它要求另一个输入。yes
,它继续到下一个代码块。yes
或no
。问题是,当我输入yes
时,代码会停止。
以下是代码的主要部分:
int main(){
int degree=0, ctr, i;
int factorsp[degree+1], factorsq[1000], coeff[degree+1], answers[degree+1];
char deg[1000], option[5]="YES", p[1000], q[1000], coeffs[1000], choice[10]="no";
while(option!="NO"){
while(degree==0){
degree=degfunc(degree);
while(strcmp(choice,"no")==0 && degree!=0){
printf("The highest degree will be %d.(Yes/No)" ,degree);
fgets(choice, 4, stdin);
sscanf(choice, "%s", choice);
for (i=0; i<strlen(choice);i++){
choice[i] = tolower(choice[i]);
}
if(strcmp(choice,"yes")==0){
printf("hi");
}
if(strcmp(choice,"no")==0){
degree=0;
printf("wew");
break;
}
else{
printf("\007Error! That is not a valid answer!\n");
strcpy(choice,"no");
}
}
}
答案 0 :(得分:1)
这不符合你的想法:
while(option!="NO") {
您必须使用strcmp来比较字符串。另外你可能意味着
else if(strcmp(choice,"no")==0){
而不是if(strcmp(choice,"no")==0){
如果您想测试三种结果,是,否,都不是。
接下来,sscanf
应该做什么?如果您打算删除fgets
中choice[]
存储的换行符,那么为什么不查找它并将其替换为&#39; \ 0&#39;?