0

OK、それで私は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をコンパイルしようとすると、2つのエラーが発生します。

不正です。右のオペランドの型は「constchar[1]」です。

演算子は効果がありません。副作用のある予想される演算子

簡単なことは知っていますが、何が問題なのかわかりません。エラーはその行に起因しているようgrade [i][j] << " "; です。どんな助けでもいただければ幸いです。

4

2 に答える 2

3

エラーはあなたが何かのようなものが必要であることをあなたに伝えています

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

grade [i][j]は、char" "あり、そのようなRHSとLHSの組み合わせで動作するものconst char[1]はありません。operator<<

于 2012-09-18T05:31:22.177 に答える
2

の値を出力しようとしてgrade[i][j]いますが、を使用していませんstd::cout。このようにしてみてください:

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

左シフト演算子<<です。char(など)には定義されていないため、エラーが発生します。grade[i][j]

于 2012-09-18T05:32:39.777 に答える