2012-09-18 82 views
0

好的,所以我正在試圖做一個簡單的程序,讀取2個輸入文件(名稱&等級),然後顯示並將它們打印到輸出文件。到目前爲止,我有這樣的:表達式必須有整數或枚舉類型

#include <iostream> 
#include <fstream> 
#include <string> 
#include <iomanip> 
#include <sstream> 
using namespace std; 

void ReadNames(); 
void ReadGrades(); 

void ReadNames() 
{ 
char names [15][5]; 

ifstream myfile("names.txt"); 

if(myfile.is_open()) 
{ 
    while(!myfile.eof()) 
    { 
     for (int i = 0; i < 11; i++) 
     { 
      myfile.get(names[i],15,'\0'); 
      cout << names[i]; 
     } 
    } 
    cout << endl; 
} 
else cout << "Error loadng file!" << endl; 
} 

void ReadGrades() 
{ 
char grades [15][5]; 

ifstream myfile2("grades.txt"); 

if(myfile2.is_open()) 
{ 
    while(!myfile2.eof()) 
    { 
     for (int k = 0; k < 11; k++) 
     { 
      myfile2.get(grades[k],15,'\0'); 
      cout << grades[k]; 
     } 
    } 
    cout << endl; 
} 
else cout << "Error loadng file!" << endl; 
} 

int main() 
{ 

char Name [10]; 
int grade [10][10]; 

ReadNames(); 
ReadGrades(); 

for (int i = 0;i < 5; i++) 
{ 
    cout << Name[i]; 
    for (int j = 0; j < 5; j++) 
    grade [i][j] << " "; 
    cout << endl; 
} 

cout << endl; 

system("pause"); 
return 0; 
} 

當我嘗試編譯Visual Studio是給我兩個錯誤:

非法,右操作數的類型 '爲const char [1]'

運營商無效;有副作用

預計運營商,我知道這件事情簡單,但我不知道是什麼問題。該錯誤似乎源自grade [i][j] << " ";行。任何幫助,將不勝感激。

回答

2

的錯誤,告訴你你需要服用點像

std::cout << grade [i][j] << " "; 

grade [i][j]char" "const char[1],並沒有operator<<是這樣的RHS和LHS組合操作。

1

您正在嘗試輸出grade[i][j]的值,但未使用std::cout。試試這樣:

std::cout << grade [i][j] << " "; 

<<left shift operator。由於它沒有爲char定義(例如grade[i][j]),所以會出現錯誤。

+0

好的,謝謝你們做的伎倆。現在沒有更多的錯誤。 – user1679278

相關問題