2014-12-05 157 views
1

我正在進行一個項目,並且有一個類似的循環,下面的用戶輸入一個字符格式後跟一個整數的幾個值。我希望能夠在用戶簡單地輸入拖車值'E'時退出該循環。只需輸入一個'E'而不是'E'後跟一個整數,是否有可能擺脫這個循環?如何擺脫這個do-while循環?

int main() 
{ 
    char letter; 
    int charge; 
    do 
    { 
     cout << "Input letter and charge: "; 
     cin >> letter >> charge; 
    }while(letter != 'E'); 
    return 0; 
} 
+1

爲什麼不你先讀取char,檢查它,然後決定是否需要讀取另一個整數? – 2014-12-05 01:55:12

+0

@JoshChlan如果他們幫助你找到答案,我鼓勵你接受這些答案之一,[aga_pan](http://stackoverflow.com/users/2122675/aga-pan)或我的答案。 – 2014-12-05 12:44:33

回答

3

我不是while(true)風扇時,實際上存在退出條件,所以我應該這樣做:

int main() 
{ 
    char letter = 'E'; 
    int charge; 

    cout << "Input letter and charge: "; 

    for(cin >> letter; letter != 'E'; cin >> letter) 
    { 
     cin >> charge; 
     cout << "Input letter and charge: "; 
    } 
    return 0; 
} 
+0

當字母隨機初始化爲'E'時會發生什麼 – Adrian 2014-12-05 02:02:11

+0

@Adrian它應該由第一個'cin'初始化。 – 2014-12-05 02:04:38

+1

如果讀取失敗,您應該初始化'letter'。 – 2014-12-05 02:06:12

5

你可以使用break:

do 
{ 
    cout << "Input letter and charge: "; 
    cin >> letter; 

    if (letter == 'E') break; 

    cin >> charge; 

} while (true);