C++ for 循环未正确交互.它在第一次迭代时停止
C++ for loop is not interating correctly. It is stopping at first iteration
我有家庭作业。我必须创建一个函数,从字符串中取出空格并输出结果。出于某种原因,我的 for 循环没有交互,我不确定为什么会发生这种情况。这是我的代码:
int main() {
string userInput;
string result;
string letter;
cin >> userInput;
result = "";
for (unsigned int i = 0; i < userInput.size() - 1; ++i){
letter = userInput.at(i);
if(userInput.at(i) != ' '){
result.append(letter);
}
}
cout << result << endl;
return 0;
}
它可能似乎在第一个字母处停止,因为:
cin >> userInput;
将只读取一个字符串,直到第一个空格。
换句话说,如果你输入hello there
,你只会得到hello
。
您可能希望使用getline()
来确保获得整行:
getline(cin, userInput).
您还希望更改循环的延续条件。从字符串长度中减去 1 会让您错过最后一个字符。相反,它应该是:
for (unsigned int i = 0; i < userInput.size(); ++i) {
相关文章:
- 在一次迭代中从 txt 文件中读取多行
- 高级选择排序 - 在一次迭代中搜索两个元素
- 为什么映射插入和 map.find() 的单次迭代比插入和 map.find() 的两次单独迭代慢得多
- C++:std::ofstream 方法 open() 在第二次迭代时擦除打开的 ifstream 文件
- 是什么导致我的循环在第一次迭代中运行得更慢
- 为什么第一次迭代后的指针指向随机值?
- LAPACK函数在第一次迭代后变慢
- 为什么如果(!(cin >> int)) 在第一次迭代中接受十进制数,但不接受其他十进制数?
- C++ for 循环未正确交互.它在第一次迭代时停止
- C++初学者-当循环重复第一次迭代时
- OpenCV 矩阵和 FileNodeIterator:选择第一次迭代
- 此循环仅适用于第一次迭代
- C++ 笛卡尔乘积迭代器在第一次迭代时调用基类函数
- cin.getline() 跳过第一次迭代
- 为什么这个循环在第一次迭代时中断
- Cin未能在循环的第一次迭代后执行
- openCV grabcut GC_INIT_WITH_MASK第一次迭代
- 如何跳过基于范围的for循环的第一次迭代
- 为什么c++ io流的循环在第一次迭代后中断
- c++验证函数循环在第一次迭代后返回相同的结果