0

我真的很困惑为什么我会收到这个特定数组索引的错误。我正在编写一个从文本文件中获取学生成绩输入的程序。此文件为 10 行,每列 2 列,格式为(名字、姓氏、1 级、2 级、3 级、4 级、5 级)。在执行期间,我需要逐行遍历文件并将名称放入他们自己的 10 行 2 列中,并将成绩放入他们自己的 10 行 5 列中。这是一个阶级的事情,我知道我们为什么要这样做。基本上,数据将在循环期间拆分并加载到 namesArray 和 GradesArray 中。我已在我的 IDE 中标识的错误行在两侧和行位置处用*标记

最后,这是我的代码:

//Student Name:  Jacob Gillespie
//Date:  10/20/13
//Program:  Student Grade Manipulation
//Summary:  Reads in grade data from text file, manipulates data
//and stores data back in output file

//Headers
#include <iostream>
#include <string>
#include <fstream>

using namespace std;

//Declare variables and arrays
ifstream inData;
ofstream outData;

string namesArray[10][2];
string gradesArray[10][5];



//Main Program Execution

int main()

{
//Open the data file containing the student names and grades
inData.open("StudentGrades.txt");

//Read data lines and assign student names to namesArray and grades to gradesArray
for (int counter = 0; counter < 10; counter++)
    inData >> namesArray[counter][0] >> namesArray[counter][1]
           >> gradesArray[counter][0] >> gradesArray[counter][1] >> gradesArray[counter][2]
           >> gradesArray[counter][3] >> gradesArray [counter][4];

//TESTING, Print namesArray and gradesArray to ensure values are loaded and assigned correctly
for (int counter = 0; counter < 10; counter++)
    *****cout >> namesArray[counter][***0***] >> " " >> namesArray[counter][1] >> endl;*****

for (int counter = 0; counter < 10; counter++)
    cout  >> gradesArray[counter][0] >> " " >> gradesArray[counter][1] >> " " >> gradesArray[counter][2]
          " " >> gradesArray[counter][3] >> " "gradesArray [counter][4] >> endl;

return 0;
}
4

2 回答 2

2
cout >> ... >> .. >> ...;

应该

cout << ... << .. << ...;

考虑将数据放入输出流,因此数据应该流向它。

于 2013-10-21T23:11:55.707 回答
2

cout作为输出流的运算符是<<

  +--------+                
  |        |                
  |  cout  | <<-----  data  
  |        |                
  +--------+                

  +--------+                
  |        |                
  |  cin   | ----->>  data  
  |        |                
  +--------+     
于 2013-10-21T23:12:09.240 回答