读取文件并添加到数组char

时间:2013-09-14 21:52:50

标签: c++ file fstream

#include<iostream>
#include<fstream>
#include<cctype>
#include<string>
using namespace std;

int main(){
    ifstream fin;
    int i,size,j=8,t=0;
    char kunci[21]="TFFTFFTTTTFFTFTFTFTT";
    string data;
    fin.open("datajawaban.txt");
    //getline(fin,data);
    char jawab[31];
    cout <<"ini isi file " <<data<<endl;
    for(i=0;i<=31;i++){
       fin >> jawab[i];
       jawab[31] = '/0';
       if(jawab[j]==kunci[i])t++;
       cout <<"data ke "<<i <<" "<< jawab[j] << " - " <<kunci[i]<<endl;     
       j++;
    }
    cout << "jumlah benar "<< t;
    fin.close();   
    system("pause");
    return 0;
}

这是我的代码

输出是 ±

± ` ( v

点  ↨  v

点  ☺  v

-

0  \  ±  ç

点  ☺  v

输出错误,我的代码有什么问题?

这次请帮助我,这是我的作业

1 个答案:

答案 0 :(得分:3)

jawab[31] = '/0';undefined behaviour,因为数组大小为31,数组索引以0开头,最大索引值可以为1,jawab数组为30。

不仅for循环针对i<=31;运行,您在i循环kunci[i]索引i&gt; 19这是索引bug的另一个数组点。 - 只需声明足够大的数组来纠正这两个错误。