2014-12-05 121 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);