-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