01/10/2018, 09:10
Khác nhau về đọc file giữa Visual Studio và Devc++
//#define _CRT_SECURE_NO_WARNINGS
#include<bits/stdc++.h>
#include<conio.h>
using namespace std;
const int MAX = 11;
fstream file;
void Ghi();
void Doc();
int main() {
Ghi();
system("cls");
Doc();
return 0;
}
void Ghi() {
string ques[MAX],ansSentence[MAX][4];
int ans[MAX];
string temp;
file.open("Input.inp", ios::out | ios::binary);
for (int i = 0; i < MAX; i++) {
ques[i].resize(10);
// ansSentence[i].resize(4);
ans[i] = i % 4;
itoa(i, (char*)ques[i].c_str(), 10);
cout<<ques[i]<<endl;
for (int j = 0; j < 4; j++) {
ansSentence[i][j].resize(6);
itoa(j+100, (char*)ansSentence[i][j].c_str(), 10);
}
//ques[i].shrink_to_fit();
}
for (int i = 0; i < MAX; i++) {
//for(int k=0;k<ques[i].size();k++)
cout << ques[i] << endl;
for (int j = 0; j <4; j++) {
cout <<j<<". "<< ansSentence[i][j] << endl;
}
cout << endl << endl;
}
int n = MAX;
file.write((char*)(&n), sizeof(int));
file.write((char*)(&ques), sizeof(string)*MAX);
file.write((char*)(&ansSentence), sizeof(string)*MAX*4);
file.write((char*)(&ans), sizeof(int)*MAX);
file.close();
}
void Doc() {
int n;
int *ans;
string *ques,**ansSentence;
file.open("Input.inp", ios::in | ios::binary);
file.read((char*)(&n), sizeof(int));
ques = new string[n];
ans = new int[n];
ansSentence = new string*[n];
for (int i = 0; i < n; i++) {
ansSentence[i] = new string[4];
}
for (int i = 0; i < n; i++) {
ques[i].resize(100);
file.read((char*)(&ques[i]), sizeof(string));
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < 4; j++) {
ansSentence[i][j].resize(100);
file.read((char*)(&ansSentence[i][j]), sizeof(string));
}
}
for (int i = 0; i < n; i++) {
file.read((char*)(&ans[i]), sizeof(int));
}
for (int i = 0; i < MAX; i++) {
//for(int k=0;k<ques[i].size();k++)
cout << ques[i] << endl;
for (int j = 0; j <4; j++) {
cout << j << ". " << ansSentence[i][j] << endl;
}
cout << endl << endl;
}
file.close();
}
Khi đọc file vơi Visual Studio thì không vấn đề gì, nhưng khi chạy với devc++ thì lúc đọc từng phần tử của mảng ques[i] thì chương trình báo lỗi “Program received SIGNAL, Segmentation fault”.
Mọi người có thê giúp mình tìm nguyên nhân và khắc phục lỗi này với ạ.
Bài liên quan