我遇到问题,我的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]);
}
答案 0 :(得分:2)
您可以使用&#39; std :: cin&gt;&gt; someVar&#39;之前&#39; setLocations&#39;函数调用,它不会消耗换行符。要解决此问题,请在“&#39;之前使用此代码段。环
std::cin.ignore(1, '\n');