c++ - 循环仅适用于第一行。其他行不受for影响
问题描述
我正在练习阅读文件并编辑内容。输入将类似于:
2 2 3 -1
3 3 -1 3
我想让-1什么都不是。它适用于第一行,所以我得到:
2 2 3
3 3 -1 3
但正如您所看到的,在其他行上它不会编辑。我的循环有什么问题?我是 C++ 新手,所以我很困惑。另外,英语不是我的母语,如有任何错误,请见谅!
if (fin.is_open())
{
while ( getline (fin,line) )
{
for (int i; i<line.size(); i++){
if(line[i] == '-'){
line[i] = ' ';
line[i+1] = ' ';
}
}
cout << line << '\n';
}
fin.close();
}
解决方案
由于i
在for
循环中使用未初始化,您的代码具有未定义的行为。
将行更改为
for (int i = 0; i<line.size(); i++){
// ^^ Need that
推荐阅读
- mongodb - 从 BSON 文件创建 Hive 表时列值变为 NULL
- excel - 将数据移动到特定的列和行
- aframe - 鼠标和实体控件之间的框架切换
- neo4j - 查找节点属性的唯一值
- python - Pygame.error: 视频系统未初始化,python.display.update 错误
- python - 如何将 JSON 数据插入/更新到 postgreSQL
- matlab - Processing Raw data from kinect in matlab
- scala - Joining multiple dataframes horizontally
- c# - How to add dropdown in OnClick editor?
- c++ - 当一个类/结构在没有 RVO 的情况下返回时会发生什么?