【发布时间】:2016-09-26 05:25:32
【问题描述】:
我要做的是从文本文件(当前称为“输入”)中读取数字。我正在创建两个数组,一个用于整数,一个用于浮点数。数组中的最大项数设置为 50,但最小值为 1。程序停止读取数字的标识符是 int 值中的任何负数。
我不知道为什么,但是当我读回我的数组时会打印出数字,跳过最后的负数,然后打印出剩余插槽(最多 50 个)的乱码。
任何建议将不胜感激。
void Read(ifstream &input, int studentID[], float score[])
{
int curID;
float curScore;
for (int i = 0; i < 50; i++)
{
input >> curID >> curScore;
if (curID < 0)
{
return;
}
else
{
studentID[i] = curID;
score[i] = curScore;
}
}
}
【问题讨论】:
-
我假设您尝试从 1 到 50 打印数组而不检查读取元素的最大索引的限制。因此,您必须根据该总数保持读取和打印的元素总数。
-
你是对的。我自己才意识到这一点。我在没有检查数组长度的情况下打印出 50 个值。您能否将您的回复作为答案发布,以便我给予您信任?