c++ 파일 입출력 관련 질문이요.
글쓴이: fopenfclose / 작성시간: 수, 2015/12/16 - 7:48오후
Matrix* load(const char* fname) { ifstream rfile; rfile.open(fname, ios::in); Matrix * matrix = new Matrix; rfile >> matrix->numRows >> matrix->numCols; matrix->mat = new float[matrix->numRows * matrix->numCols]; for (int i = 0; i < matrix->numRows * matrix->numCols; i++) { rfile >> matrix->mat[i]; } return matrix; } Matrix* bload(const char* fname) { ifstream rfile; rfile.open(fname, ios::in | ios::binary); Matrix * matrix = new Matrix; rfile >> matrix->numRows >> matrix->numCols; matrix->mat = new float[matrix->numRows * matrix->numCols]; for (int i = 0; i < matrix->numRows * matrix->numCols; i++) { rfile >> matrix->mat[i]; } return matrix; }
하나는 일반 모드로 열고 하나는 바이너리 모드로 열었는데요.
두 가지 모드의 차이점을 잘 모르겠습니다.
c언어에서는 bin 모드가 eof를 인식한다고 나와있는데 c++에서는 다른 점이 있나요??
만약 차이점이 있다면 데이터를 파일에서 읽어올 때 다르게 처리해야 될 부분이 있나요??
조언 부탁드리겠습니다..
Forums:
exe 파일 열어보시면...
.exe 파일을 notepad.exe 로 읽어보시면. 그것이 binary 로 저장 된거구요.
.txt 파일을 notepad.exe 로 읽어보시면. 보통은 ascii text 로 보기 편하게 저장된것입니다.
다 저장되는 바이너리 파일
https://ko.wikipedia.org/wiki/이진_파일
일부 문자코드만 저장 되는 text 파일
https://ko.wikipedia.org/wiki/텍스트_파일
각 함수는 여기서 확인 가능합니다.
http://www.cplusplus.com/doc/tutorial/files/
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
네 답변 감사합니다.
네 답변 감사합니다.
end-of-line 에 대해 알아보세요. C
end-of-line 에 대해 알아보세요.
C fopen() 의 "b" 도 같은 의미입니다.
(ftp 로 파일을 받을 때 text mode 로 받냐 binary mode 로 받냐의 차이도 마찬가지고요)
마치 cross platform 이 저절로 될 것 같은 생각이 든다면 함정에 걸려드신 겁니다.
댓글 달기