-2
**编辑:我通过将'inStream >> next'更改为'inStream >> skipws >> next'来解决问题。在我之前的一个函数中(拉取最后一个名字),我已经切换了noskipws。显然,切换持续功能之间?从ifstream正确获取值的问题
我有一个程序,是应该读取一个文本文件,其格式设置为“姓氏firstname 1 2 3 4 5 6 7 8 9 10”(其中每个10个数字是整数分数)。
我能够在姓和名字精细阅读,但是当我去开始阅读的数字,我只能在第一个读取,然后其余全部被置为0。
下面是应该读取分数的函数。inStream已经取消了姓氏和名字。我使用文本文件都有一个行:
细胞增多哈雷85 23 10 95 43 12 59 43 20 77
当运行程序和打印出student.score值从0到9,第一个显示正确的为'85',但所有重置显示为'0'。思考?
void GetScores (ifstream& inStream, record& student)
{
int score[10] = {-1, -1, -1, -1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1};
int next;
int counter = 0;
string test;
for (int i = 0; i < 10; i++)
{
inStream >> next;
student.score[i] = next;
}
}
看起来正确的给我。你如何打印这些值? (和'计数器'的目的是什么?) – jrok
你是否在读完名字和姓氏后调用这个函数? – P0W
本地'score'数组的用途是什么?你永远不会读它或写信给它。 – Kvothe