用>>写入文件的时候会报错,求解答

用>>写入文件的时候会报错,求解答


#include

#include

#include

using namespace std;

void shuru()

{

 ofstream file1("f1,dat");

 if (!file1)

 {

 cerr << "文件打开失败!";

 abort();

 }

 ofstream file2("f2.dat");

 if (!file2)

 {

 cerr << "文件打开失败!";

 abort();

 }

 int a[20];

 for (int i = 0; i < 20; i++)

 cin >> a[i];

 for (int i = 0; i < 10; i++)

 {

 file1 << a[i] << " ";

 }

 for (int i = 10; i < 20; i++)

 {

 file2 << a[i] << " ";

 }

}

void add()

{

 ofstream file1("f1,dat");

 if (!file1)

 {

 cerr << "文件打开失败!";

 abort();

 }

 ofstream file2("f2.dat",ios::app);

 if (!file2)

 {

 cerr << "文件打开失败!";

 abort();

 }

 int a;

 for (int i = 0; i < 10; i++)

 {

 file1 >> a;

 file2 << a << " ";

 }

 file1.close();

 file2.close();

}

void rank_add()

{

 ofstream file1("f1,dat");

 if (!file1)

 {

 cerr << "文件打开失败!";

 abort();

 }

 ofstream file2("f2,dat");

 if (!file2)

 {

 cerr << "文件打开失败!";

 abort();

 }

 int a[20],temp;

 for (int i = 0; i < 20; i++)

 {

 file2 >> a[i];

 }

 for(int i=0;i<19;i++)

 for (int j = 0; j < 19 - i; i++)

 {

 if (a[j] > a[j + i])

 {

 a[j] = temp;

 a[j] = a[j + 1];

 a[j + 1] = temp;

 }

 }

 file2.close();

 ofstream file2("f2.dat", ios::out);


 for (int i = 0; i < 20; i++)

 {

 file2 << a[i]<<" ";

 }

 file2.close();

 file1.close();

}

int main()

{

 shuru();//(1)

 add();//(2)

 rank_add();//(3)

 return 0;

 

}

img

file1是ofstream,是输出流,只能用<<
你这file1和file2都定义的是输出流,但你一会儿输入,一会儿输出,肯定不行啊