SayCoo論壇

查看: 4113|回復: 4
打印 上一主題 下一主題

詢問一個 c 的問題

[複製鏈接]
跳轉到指定樓層
1
發表於 2006-11-9 01:58:25 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
char YN;
int count = 0;
上面宣告一個這個後


while(1){
      printf("\nEnter again?(yes(y) /no(n)):\n");
            scanf("%c",&YN);
       
        if(count>=1)                    
        {
            scanf("%c",&YN);
        }
            count++;

        if(YN =='y' ||YN =='Y')   
           continue;
            else
            break;  
}

總是要讓他判斷count 大於 1 的問題
不然第二次 y 之後要在做第二次時
第一個scanf會失去效用

請問知道這個是什麼原因嗎???
第二次回來printf照樣會印
只是第二次回來  第一個scanf就沒法輸入了
害我每次都要做if  跑下面的第二個scanf


麻煩大大幫忙解決..
2
發表於 2006-11-9 08:58:38 | 只看該作者
記得scanf()函數取得輸入值後
會將ENTER鍵的值留下
不知道是不是這個原因....
回復 支持 反對

使用道具 舉報

3
 樓主| 發表於 2006-11-12 12:31:54 | 只看該作者

推樓上+1

樓上方法   我之前已經試過了...ㄏㄏ
回復 支持 反對

使用道具 舉報

4
發表於 2006-11-13 17:05:14 | 只看該作者
do {
     printf("\nEnter again?(yes(y) /no(n)):\n");
     scanf(" %c",&YN);
                 
               %c前加個空白

    }while( YN =='y' ||YN =='Y');

試試看吧!!!
回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 加入會員

本版積分規則

手機版|黑名單|SayCoo論壇

GMT+8, 2024-4-30 08:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表