#include <fstream>
#include <fstream>
#include <iostream>
using namespace std;
void main()
{
int i,j;
float Acount[63],Bcount[63],Ccount[63],Dcount[63],Ecount[63],Fcount[63],vA[63],vB[63],vC[63],vD[63],vE[63],vF[63];
char a[505];
char b[8][63];
ifstream fin("D:/我的输入文件.doc");
for(i=0;i<504;i++)
fin>>a[i];
for(i=0;i<504;i++)
cout<<a[i];
for(i=0;i<8;i++)
{
for(j=0;j<63;j++)
{
b[i][j]=a[j+i*63];
}
}
for(i=0;i<8;i++)
for(j=0;j<63;j++)
{
if(b[i][j]='A') Acount[j]=Acount[j]+1.0;
if(b[i][j]='B') Bcount[j]=Bcount[j]+1.0;
if(b[i][j]='C') Ccount[j]=Ccount[j]+1.0;
if(b[i][j]='D') Dcount[j]=Dcount[j]+1.0;
if(b[i][j]='E') Ecount[j]=Ecount[j]+1.0;
if(b[i][j]='F') Fcount[j]=Fcount[j]+1.0;
}
ofstream fout("D:/我的输出文件.doc");
for(j=0;j<63;j++)
{
vA[j]=Acount[j]/32.0;
vB[j]=Bcount[j]/32.0;
vC[j]=Ccount[j]/32.0;
vD[j]=Dcount[j]/32.0;
vE[j]=Ecount[j]/32.0;
vF[j]=Fcount[j]/32.0;
fout<<"在第"<<j+1<<"道题中, "<<"其中A占比例为:"<<vA[j]*100<<"%"<<" ; "<<"其中B占比例为:"<<vB[j]*100<<"%"<<" ; "<<"其中C占比例为:"<<vC[j]*100<<"%"<<" ; "<<"其中D占比例为:"<<vD[j]*100<<"%"<<" ; "<<"其中E占比例为:"<<vE[j]*100<<"%"<<" ; "<<"其中F占比例为:"<<vF[j]*100<<"%"<<endl;
}
fout.close();
cin.get();
}
出现是一样的错误,我觉得应该是没有结束符的缘故,但是不知道怎么加这个结束符,毕竟是读取数据。
追答比如最后一个元素是 a[k] ,就这样: a[k+1]='\0'
追问还是这样啊,求解释啊。要不你在你的电脑上试试,数据是ABCDEFABDCDFAFDAFDE.....总共是503个
追答哎呀,字符串就是一个字符数组加上结尾标志,这个标志就是字符:'\0'
它的acsii编码是 0