推 flydragon198: (!strlen(str1) ==0) 這裡有問題 12/21 20:11
→ akka5678: 因為我想用Enter結束,不就是str1字串長度==0時break嗎? 12/21 20:18
推 flydragon198: 在cin後,會一直重複迴圈,沒有輸入就會一直重複 12/21 20:22
→ akka5678: 對,但沒有輸入就按Enter不就是字串長度=0?怎麼沒中斷QQ 12/21 20:28
→ akka5678: 例如我輸入了兩行資料第三行不輸入了,直接按Enter想離開 12/21 20:29
推 stupid0319: if中再加一行ZeroMemory(str1,50); 12/21 20:31
推 flydragon198: cin如果直接按enter,不會把字串變成空的樣子 12/21 20:32
→ flydragon198: 你可以在while內第一行加上cout << "test"; 12/21 20:32
→ flydragon198: 然後開啟程式直接按enter,會發現進不去while 12/21 20:33
→ flydragon198: 因為一直停留在前一行的cin 12/21 20:33
→ flydragon198: 另外你的if內也沒有改變str1的值,他就會變成在 12/21 20:34
→ flydragon198: while內無窮迴圈,不會跳出 12/21 20:35
是的謝謝!!所以有方法可解嗎?
我試過用getline
cin.getline(str1,80);
cin.getline(str2,80);
這樣就可以用Enter讀取空字串,但是輸入就只能以換行來存入str1和str2了..
police
gmail
hospital
hotmail
這樣....
如果再getline(str1,80,' '); //這樣就不能以Enter來中斷..
而且中間又必須輸入電話 int n
這樣不知道怎麼加..因為這只能用 cin >> n
這樣下一行的getline(str2,80); 就會抓到空白(因為抓完n後就回停留在換行符號前)
※ 編輯: akka5678 (175.180.106.216), 12/21/2015 21:31:32
推 LPH66: stringstream 可以解決你的問題 12/21 21:47