2017-09-24 171 views
0

在函数Read()当我输出数组klas []和nauj []一切似乎被读取正常,但回到主要功能,他们被摧毁,似乎填写其他文本文件。你有什么想法这里有什么问题?cmd窗口停止工作,文本文件读取错误与fstream

#include <iostream> 
#include <fstream> 

using namespace std; 

const char klase[] = "klase.txt"; 
const char naujokai[] = "lele.txt"; 

void Read(int klas[], int nauj[], int &nk, int &nj); 

int main() 
{ 
    int klas[] = {}; 
    int nauj[] = {}; 
    int nk; 
    int nj; 
    Read(klas, nauj, nk, nj); 

    for(int i = 0; i < nk; i++){ 
     cout << klas[i] << endl; 
    }for(int i = 0; i < nj; i++){ 
     cout << nauj[i] << endl; 
    } 



    return 0; 
} 

void Read(int klas[], int nauj[], int &nk, int &nj) 
{ 
    ifstream fklase(klase); 
    fklase >> nk; 
    for(int i = 0;i < nk;i++){ 
     fklase >> klas[i]; 
     cout << klas[i] << endl << endl; 
    } 
    fklase.close(); 
    ifstream fnaujokai(naujokai); 
    fnaujokai >> nj; 
    for(int i = 0; i < nj; i++){ 
     fnaujokai >> nauj[i]; 
     cout << nauj[i] << endl << endl; 
    } 
    fnaujokai.close(); 

} 

回答

2

零大小的数组如int klas[] = {};不规范和写入他们为你在fklase >> klas[i];做的是未定义行为,因为他们没有空间来存储任何东西。另请注意,当您使用int klas[]作为函数参数时,它实际上等于int * klas

+0

嗨,我改变了两个数组,使他们有一个最大值如int klas [100]及其工作!谢谢! –