(Ошибка) нет совпадения для 'operator>>' в 'std::cout >> namesArray(counter)(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;
}

2 ответа

Решение
cout >> ... >> .. >> ...;

должно быть

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

Подумайте о том, чтобы поместить данные в выходной поток, поэтому данные должны идти к нему.

Оператор cout в качестве выходного потока <<,

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

  +--------+                
  |        |                
  |  cin   | ----->>  data  
  |        |                
  +--------+     
Другие вопросы по тегам