2012-09-18 103 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

相关问题