線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:4343
推到 Plurk!
推到 Facebook!

關於c++ char array清空的問題

尚未結案
Fanta
一般會員


發表:8
回覆:7
積分:3
註冊:2005-05-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-19 14:26:29 IP:59.114.xxx.xxx 未訂閱
while(count>0)
        {                
                cin.getline(stringkeyin,6,'\n');
                check(stringkeyin);//call function
                --count;            }
假設以上程式輸入 1234567,7個數字,程式會把輸入的一串數字節掉,剩下12345,當執行完check function之後,程式會認為stringkeyin裡面還有東西67,而自行又check,而沒執行cin,我是想把stringkeyin裡面在執行完check之後就清空,應該就能解決這麼問題,請各位指點,感謝 發表人 -
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-19 15:04:38 IP:219.68.xxx.xxx 未訂閱
您好: memset(stringkeyin,0,6);//陣列原素都設為0 我認為您應該在當1234567改變成為12345時陣列填成12345\0,填\0作為字串結尾,以避免未來出現不必要的錯誤。
GeorgeKu
中階會員


發表:1
回覆:120
積分:74
註冊:2004-10-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-19 15:05:28 IP:61.228.xxx.xxx 未訂閱
如果你是使用Microsoft的compiler就會有讀到多的字元問題,請參考以下連結http://support.microsoft.com/default.aspx?scid=kb;EN-US;q240015
Fanta
一般會員


發表:8
回覆:7
積分:3
註冊:2005-05-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-20 18:17:26 IP:59.114.xxx.xxx 未訂閱
感謝supman,GeorgeKu    supman提到當他改變時,執行getline時他會自行節掉成12345\067\0就變成了兩個字串,執行第一次印出12345\0,第二次67\0,好像沒法將後面排除吧,我是想應該是像GeorgeKu說的,因為我的是microsoft的會有多讀字元的問題,但是我看了那網址,在include的時候iostream不能用head file,都要一個個用using std::這樣好麻煩唷,雖然這樣能解決,不過每次都一直using不太方便,請問有其他方法嗎?而且這樣寫如果在while裡面,cin超過getline限制的字數時,會不停的打轉,直到跳出while     如以下 < class="code">#include using std::cin; using std::endl; using std::cout; char string[80]; void main() { int c=0; while(c<10) { cin.getline(string,5,'\n'); cout< 我限制輸入5個字數,不過一旦超過了就會直接把10次跑完,雖然解決了多出字元的問題,不過又出現了這個新問題 發表人 - Fanta 於 2005/06/20 18:30:38
GeorgeKu
中階會員


發表:1
回覆:120
積分:74
註冊:2004-10-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-21 11:10:02 IP:61.228.xxx.xxx 未訂閱
Fanta, 你可能沒仔細看連結內的說明,你引用的是他如何把BUG問題顯示出來,解決的方式是要修改標頭檔(如RESOLUTION那邊的範例),這個BUG在VC .net已經修正了,所以你可以選擇用VC .net或者用其他的編譯器.
系統時間:2024-10-08 11:26:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!