如何使while循环只运行特定次数?

时间:2013-06-22 05:47:21

标签: c++

我试图将一定数量的单词推回到矢量中,但是

while (cin >> words) {
        v1.push_back(words);
    }

循环没有结束。下一个声明是将所有内容转换为大写。但它不会退出while循环。持续不断地要求输入新词。

2 个答案:

答案 0 :(得分:1)

不要马上做任何事情。您刚刚描述的是for循环。只需阅读输入所需的次数,并在每次迭代时push_back()。当for循环达到条件时,循环按预期结束。

// Here I create a loop control (myInt), but it could be a variable
// from anywhere else in the code. Often it is helpful to ensure you'll 
// always have a non-negative number. This can done with the size_t type.
for(std::size_t myInt = 0; myInt < someCondition; ++myInt)
{
    // read the input
    // push it back
}

记住C / C ++在使用for循环时使用基于零的容器,循环控件作为索引,如=&gt; myContainer[myInt]

答案 1 :(得分:0)

一种巧妙的方法是定义一个常量(例如 size_t const MAX_WORDS = 3;)并检查v是否还有足够的元素:

while ((v1.size() < MAX_WORDS) && (cin >> words))
{
    v1.push_back(words);
}