一个关于freopen的问题
  • 板块灌水区
  • 楼主西宋太祖
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/9/26 07:33
  • 上次更新2023/10/27 09:55:46
查看原帖
一个关于freopen的问题
218457
西宋太祖楼主2022/9/26 07:33

想用C++写一个自动批改作业的代码,但是发现第二个文件无法被输入。

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string s1[501],s2[501];
	bool r[501]={0};
	freopen("right_answers.sb2","r",stdin);
	int i,j,k;
	i=j=1;
	int point=0;
	while(cin>>s1[i]) i++;
	freopen("my_answers.txt","r",stdin);
	while(cin>>s2[j]) j++;
	freopen("results.txt","w",stdout);
	cout<<s1[1]<<" "<<s2[1]<<endl;
	for(k=1;k<=i;++k)
	{
		if(k>=1&&k<=15 || k>30)
		{
			if(s1[k] == s2[k])
			{
				++point;
				r[k] = 1;
			}
			else
			{
				cout<<k+15<<'.'<<endl;
				cout<<"your answer:"<<s2[k]<<endl;
				cout<<"right answer:"<<s1[k]<<endl;
			}
		}
		if(k>=16&&k<=30)
		{
			if(s1[k] == s2[k])
			{
				point+=2;
				r[k] = 1;
			}
			else
			{
				cout<<k+15<<'.'<<endl;
				cout<<"your answer:"<<s2[k]<<endl;
				cout<<"right answer:"<<s1[k]<<endl;
			}
		}
	}
	cout<<"total score: "<<point<<endl;
	return 0;
} 

字符串s2始终为空。

2022/9/26 07:33
加载中...