C++ Getline没有';因为某种原因我不能工作
地图-是我打开的一个文件。 线串 上半部分工作,但下半部分不工作C++ Getline没有';因为某种原因我不能工作,c++,getline,stringstream,C++,Getline,Stringstream,地图-是我打开的一个文件。 线串 上半部分工作,但下半部分不工作 getline(map, line); getline(ssvalues, values, '|'); // Gets the name of the tileset file tileset.loadFromFile(values.c_str()); getline(ssvalues, values, ' '); // Gets the size of the tile tileSize
getline(map, line);
getline(ssvalues, values, '|'); // Gets the name of the tileset file
tileset.loadFromFile(values.c_str());
getline(ssvalues, values, ' '); // Gets the size of the tile
tileSize = atoi(values.c_str());
getline(map, line); // Reads the next line.
ssvalues.str(line);
values = "";
// FROM HERE IT DOESNT WORK, 'values' always empty, why--
getline(ssvalues, values, '|'); // Get the X size of map
std::cout<<values;
mapSize.x = atoi(values.c_str());
getline(ssvalues, values, ' '); // Get the Y size of map
mapSize.y = atoi(values.c_str());
std::cout<<values;
在这里,您重置了stringstream缓冲区的“内容”,但没有清除其错误标志。因为它已经到达EOF,所以仍然设置该标志,并且将来的getline
调用将失败
对于所有这些输入操作,您应该在代码中添加错误检查,并编写以下内容,而不是上述内容:
ssvalues.clear();
ssvalues.str(line);
getline
绝对有效。你做错了什么。
ssvalues.str(line);
ssvalues.clear();
ssvalues.str(line);