|
행렬 A,B를 각각 mat_A.txt, mat_B.txt로부터 읽어서
A+B, A-B, A*B를 계산하여 각각의 결과를
add.txt, sub.txt, mul.txt에 저장하는 프로그램입니다.
Matrix라는 class를 선언했습니다.
ofstream객체가 하나일때, 즉
A+B만 계산하여 add.txt에 저장할 때는 잘 됩니다.
아래 프로그램에서 ///1 부터 ///2까지 코멘트 처리 하면 잘 돌아갑니다.
A-B만, 또는 A*B만 저장할때도 각각 잘 돌아갑니다.
그런데
파일 한 개를 저장할 때는 잘 되는데
파일 세 개에 쓸 때는 잘 되지 않습니다.
ofstream을 세 개 생성하여 각각의 파일에 저장할 때는 컴파일은 되지만
실행할 때에 오류가 뜨고(프로그램의 작동이 중지되었습니다.. 라는 에러 팝업창이 뜹니다.)
파일에도 저장이 되지 않습니다.
운영체제는 비스타를 사용하고 있습니다.
파일 여러 개에 각각의 결과를 저장하려면 어떻게 해야 하는 건가요?
아래 방법에서 어떤 점을 고쳐야 할까요?
아니면 여러 개 파일에 결과를 쓸 수 있는 다른 방법이 있다면 부탁드립니다.
감사합니다!
/////////////////////////////////////
#include <cstdlib>
#include <iostream>
#include <fstream>
#include "matrix.h"
using namespace std;
int main(int argc, char *argv[]){
Matrix A, B, C;
ifstream Matrix1; //Read Matrix file 1
Matrix1.open("mat_A.txt");
Matrix1 >> A;
Matrix1.close();
ifstream Matrix2; //Read Matrix file 2
Matrix2.open("mat_B.txt");
Matrix2 >> B;
Matrix2.close();
C = A + B; //Addition
ofstream add;
add.open("add.txt");
add << C;
add.close();
/// 1
C = A - B; //Subtraction
ofstream sub;
sub.open("sub.txt");
sub << C;
sub.close();
C = A * B; //Multiplication
ofstream mul;
mul.open("mul.txt");
mul << C;
mul.close();
/// 2
system("PAUSE");
return EXIT_SUCCESS;
}
|