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





