2014-10-19 32 views
-5

是否继续(y/n)在此c代码中不起作用?我希望它在输入'y'时要求输入一个字符串,如果输入n,则退出程序。我尝试了很多选择,但无济于事。 感谢您的帮助是否继续(y/n)问题

do 
    { 
     i = 0, final = 0, s = 0; 
     printf("\n\nEnter Input String.. "); 
     scanf("%s", string); 

     while (string[i] != '\0') 
      if ((s = check(string[i++], s)) < 0) 
       break; 
     for (i = 0 ; i < nfinals ; i++) 
      if (f[i] == s) 
       final = 1; 
     if (final == 1) 
      printf("\n String is accepted"); 
     else 
      printf("String is rejected"); 

     printf("\nDo you want to continue.? \n(y/n) "); 
    } 
    while (getch() == 'y'); 

    return getch(); 
} 
+2

前,应fflush你的缓冲区_doesn't WORK_请再具体些。 – 2014-10-19 03:57:31

回答

0

以焦炭作为输入

do 
{//..your code 
printf("\nDo you want to continue.? \n(y/n) "); 
scanf("%c",&ch); 
scanf("%c",&ch); 
} 
while (ch == 'y'); 
+0

在'stdin'上使用'fflush'是未定义行为 – 2014-10-19 05:40:56

+0

替换fflush(stdin);用scanf(“%c”,&ch);即把scanf(“%c”,&ch); 2次 – 2014-10-19 06:53:41

+0

然后替换它。 – 2014-10-19 08:24:15