C ++에서 다른 ifstream 모드를 사용하는 방법은 무엇입니까?
문제
- 참조에 따르면, 내가 사용하는 경우
ifstream infile ( "test.txt" , ifstream::in );
그것은 할 것입니다Allow input operations on the stream.
그러나 "입력 작업"의 예는 무엇입니까? - ~이다
ifstream infile ( "test.txt" , ifstream::in | ifstream::binary );
여러 플래그를 사용하기위한 올바른 구문? - 내가 변하면 차이가 생길 것입니다
ifstream::
에게iso::
?
고맙습니다
해결책
- 참조에 따르면, ifstream infile ( "test.txt", ifstream :: in)을 사용하는 경우; 스트림에서 입력 작업을 허용합니다. 그러나 "입력 작업"의 예는 무엇입니까?
입력 스트림이 지원할 수있는 모든 것을 의미하는 파일에서 읽습니다. 보다 istream
회원 기능. 일반적으로 두 가지 형식을 모두 수행 할 수 있습니다 (사용 >>
) 및 형식화되지 않은 읽기 (사용 read
). 기억 ifstream
의 전문화입니다 basic_ifstream
템플릿 char
유형. 귀하의 요구에 따라 UTF-16 인코딩 된 파일을 읽으려면 다른 전문화를 사용해야 할 수도 있습니다 (wifstream
) 또는 특별한 로케일을 사용하십시오 (읽기 이것 지역에 대해 더 많이 알기 위해).
- ifstream infile ( "test.txt", ifstream :: in | ifstream :: binary); 여러 플래그를 사용하기위한 올바른 구문?
예.
- ifstream ::를 iso ::로 변경하면 차이가 생길 것입니다.
아니.
다른 팁
스트림 작업입니다 extraction <<
그리고 insertion >>
. 다음을 가정 할 때file
입니다 fstream
유형:
file << 5 << 6.5 << "Hello World!"; // insertion of data (output)
file >> x >> y >> str; // exaction of data (input)
당신은 또한 거래 할 수 있습니다 stream
A로 binary stream
. 이 경우 실제로는 "처럼 보이지 않습니다.stream
"데이터는 데이터에 무작위로 액세스 할 수 있습니다. 경우에 따라 이진 모드를 사용할 수 없습니다. 특히 네트워크 스트림처럼 데이터를 사용할 수없는 경우 삽입 및 추출은 스트림의 두 가지 주요 작업입니다.
ifstream
로 만들어집니다 input stream
기본적으로. 그래서, std::ios::in
이 경우 중복됩니다. 깃발을 올바르게 사용하고 있습니다.
모든 스트림이 상속됩니다 ios
. 따라서 깃발은 두 곳 모두에서 사용할 수 있습니다. ios
직접 또는 출처 fstream
.
제휴하지 않습니다 StackOverflow