我通过inputstream接收用户输入并将其存储在数组中,下面的代码描述了我的场景:
istringstream iss(line);
// The below code is incorrect
while (iss >> i)
{
image[j].r = i;
image[j].g = i;// this should be the next character
image[j].b = i;// this should be the character after the previous one
j++
}
问题:我想一次读取字符3并将它们存储在我的数组结构中。我怎样才能做到这一点?
注意:图像是某种结构的数组
答案 0 :(得分:1)
您应该直接阅读所需的值:
size_t j = 0;
istringstream iss(line);
while (iss >> image[j].r >> image[j].g >> image[j].b) {
j++;
}
您需要确保image
足够大以容纳所有读取的值。
可能更灵活的解决方案是使用std::vector
而不是原始数组:
istringstream iss(line);
std::vector<MyStruct> image;
MyStruct item;
while (iss >> item.r >> item.g >> item.b) {
image.push_back(item);
}