想用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始终为空。