-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
선생님 질문 있어요~
19.06.09 20:20 작성 조회수 136
3
안녕하세요 선생님,
입출력 강의를 학습하던 도중,
09분 41초, 14번 줄, ofstream ofs("my_first_file.data");
처럼 출력이나 입력에서 ios::binary 옵션을 추가해주 2진 데이터로 입출력을 하는 것이잖아요?
그런데 영상에서는 이걸 생략하시고 하셨는데도. 데이터 파일을 열었을 때 2진데이터로 출력이 되어 있더라구요!
그래서 넣고 빼고 둘다 시도해봤는데, 문자열은 그냥 문자열로 출력이되고, 문자열 포인터들은 2진데이터로 출력이 되더라구요. 메모장에 문자열을 자동으로 디코딩한 것인지, 넣고 빼고의 차이가 없는 것인지 궁금해요..!
답변을 작성해보세요.
1
홍정모
지식공유자2019.06.10
5분 4초에는 ios::binary flag를 사용하고 있습니다. flag에 따라 binary로 출력되는지 ASCII로 출력되는지를 조절할 수 있다는 내용은 이해하신 것 같네요. 메모장이 디코딩을 해주지는 않으니까 오해 없으시길 바랍니다.
0
cgzoa
질문자2019.06.13
아하 그렇군요! 감사합니다. ㅎㅎ
그런데요 선생님, 하나 더 질문이 있어요~
ifs 나 ofs 에서
write, read 함수의 첫 번째 인자가
char * 인 이유는 무엇인가요?
그리고
unsigned data_size = 0;
ifs.read((char*)&data_size, sizeof(data_size));
와 같이 data_size 의 포인터는 unsigned int*형인데 char*로 변경할 수 있는 것도 궁금해요. 혹시 이게 다운캐스팅인가요?
답변 2