For-Loop Skipping getline C ++

时间:2015-09-30 20:32:21

标签: c++ for-loop getline

我遇到问题,我的for循环跳过了getline函数。如果我用 std :: cin 替换它,那么它可以工作,所以我认为它与我在getline中输入的内容有关。

这是我的代码。

void setLocations(int amount) {
    locations = new std::string[amount];
    locations[0] = startingLocation;

    // starts at 1 because we want to skip first index. The amount is set at 2 by default, so the loop should iterate at least once.
    for (int x = 1; x < amount; x++)
        std::getline(std::cin, locations[x]);    
}

1 个答案:

答案 0 :(得分:2)

您可以使用&#39; std :: cin&gt;&gt; someVar&#39;之前&#39; setLocations&#39;函数调用,它不会消耗换行符。要解决此问题,请在“&#39;之前使用此代码段。环

std::cin.ignore(1, '\n');