我正在阅读歌曲名称,歌手和歌曲大小。但它只是在第一套阅读,然后它给了我疯狂的错误价值观。我的代码非常简单直接,所以我想知道是否有人可以给我一个想法。C++为什么这个循环有缺陷将数据读入结构数组?
struct Songs
{
string title;
string artist;
int men;
};
// main stuff
Songs song[50];
int size=0;
for (int i = 0; i<size;i++)
{
do
{
getline(fin, song[size].title);
getline(fin, song[size].artist);
fin >> song[size].mem;
size++;
i++;
}
while (song[size].title.length()>0);
}
为什么你在for循环中递增我,这已经在每次迭代中递增? – Joe 2012-02-28 02:12:29
您正在设置大小为0,然后尝试启动一个for循环,因为这个,将不会运行。我发现很难破译这段代码实际上应该做什么 - 如果我理解你是正确的,你是否正在从文件中读取数据来填充一些歌曲结构? – 2012-02-28 02:14:13
为什么你在一个循环内有一个循环?如果标题的长度大于0,为什么while循环继续执行? 我不知道你甚至试图完成什么。你能否加入你正在努力解决的问题,并且给我们所有的支持代码,而不仅仅是你认为相关的东西。当然,把它削减一下,这样我们就不会得到代码墙了,但是例如什么是“fin”? – 2012-02-28 02:14:18