logo

English

이곳의 프로그래밍관련 정보와 소스는 마음대로 활용하셔도 좋습니다. 다만 쓰시기 전에 통보 정도는 해주시는 것이 예의 일것 같습니다. 질문이나 오류 수정은 siseong@gmail.com 으로 주세요. 감사합니다.

VS2003 이상에서 iostream 구현의 문제점

by digipine posted Oct 29, 2017
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

Visual C++ .NET 2003에서는 이전의 iostream 라이브러리가 제거되었습니다.

 

 

표준 C++ 라이브러리와 이전 런타임 라이브러리의 주요 차이점은 iostream 라이브러리에 있습니다. iostream 구현에 관한 세부 내용이 변경되었으므로 표준 C++ 라이브러리에 링크하려면 iostream을 사용하는 일부 코드를 다시 작성해야 합니다.

코드에 포함시킨 이전 iostream 헤더(fstream.h, iomanip.h, ios.h, iostream.h, istream.h, ostream.h, streamb.h 및 strstrea.h)를 모두 제거하고, 한 개 이상의 새 표준 C++ iostream 헤더(<fstream>, <iomanip>, <ios>, <iosfwd>, <iostream>, <istream>, <ostream>, <sstream>, <streambuf> 및 <strstream>이며 모두 .h 확장명 없음)를 추가해야 합니다.

다음 목록에서는 이전 iostream 라이브러리의 동작과 다른 새 표준 C++ iostream 라이브러리의 동작에 대해 설명합니다.

새 표준 C++ iostream 라이브러리에서

  • open 함수는 보호 매개 변수인 세 번째 매개 변수를 갖지 않습니다.
  • 파일 핸들로부터 스트림을 만들 수 없습니다.
  • 두 가지 예외도 있지만 새 표준 C++ 라이브러리의 모든 이름은 std 네임스페이스에 있습니다. 자세한 내용은 Using C++ Library Headers을 참조하십시오.
  • ofstream 개체를 ios::out플래그만으로 열 수는 없습니다. ios::out 플래그는 논리 OR를 사용하여 ios::in 또는 ios::app 등의 다른 ios 열거자와 결합해야 합니다.
  • ios::good은 파일 끝에 도달하면 eofbit 상태가 설정되기 때문에 더 이상 0이 아닌 값을 반환하지 않습니다.
  • 기본 플래그가 현재 아무 것도 설정되지 않았다는 사실을 모른다면 ios::setf(_IFlags)를 ios::decios::oct 또는 ios::hex의 플래그 값과 함께 사용할 수 없습니다. 서식이 지정된 입/출력 함수와 연산자는 기본만 설정된 것으로 간주합니다. 그 대신, ios_base를 사용하십시오. 예를 들어, setfios_base::oct, ios_base::basefield )는 모든 기본 정보를 제거한 다음 기본을 8진수로 설정합니다.
  • ios::unsetf는 이전 값 대신 void를 반환합니다.
  • istream::getchar& _Rch )은 오류가 발생할 경우 Rch에 할당하지 않습니다.
  • istream::getchar* _Pchint _Ncountchar _Delim )은 다음 세 가지로 나뉩니다.
    • 아무 것도 읽지 못한 경우 failbit가 설정됩니다.
    • eos는 항상 문자가 추출된 다음 저장되는데, 이는 결과와 관계 없이 발생합니다.
    • _Ncount에 대해 –1의 값은 오류입니다.
  • 잘못된 매개 변수를 가진 istream::seekg는 failbit를 설정하지 않습니다.
  • 반환 형식 streampos는 오버로드된 연산자가 있는 클래스입니다. streampos 값(istream::tellgostream::tellpstrstreambuf::seekoffstrstreambuf::seekpos 등)을 반환하는 함수에서 필요한 형식의 반환 값을 캐스팅해야 합니다. 예를 들면, streamofffpos_tmbstate_t 등이 있습니다.
  • strstreambuf::strstreambuf( _Falloc, _Ffree )의 첫 번째 매개 변수(_Falloc)는 long이 아닌 size_t 인수를 가집니다.

위 변경 내용 외에도 이전 iostream 라이브러리의 요소인 다음의 함수, 상수 및 열거자는 새 iostream 라이브러리의 요소가 아닙니다.

  • filebuffstream ifstream 및 ofstream의 attach 멤버 함수
  • filebuffstream ifstream 및 ofstream의 fd 멤버 함수
  • filebuf::openprot
  • filebuf::setmode
  • ios::bitalloc
  • ios::nocreate
  • ios::noreplace
  • ios::sync_with_stdio
  • streambuf::out_waiting
  • streambuf::setbuf(같은 동작에 대해 rdbuf -> pubsetbuf 사용)


그렇다. io스트림 관련 헤더파일은 모두  iostream하나로 통합된 것이다.

앞으로 평소처럼 isstream을 사용하려면

다음과 같이 헤더파일을 선언하면 된다.

#include <iostream>
using namespace std;

 

TAG •

List of Articles
No. Subject Author Date Views
45 Customizing GINA, Part 2 digipine 2017.10.28 96759
44 C# 으로 구현한 화면 캡춰 클래스 1 digipine 2017.11.02 34021
43 [C#] 코드 실행 시간 측정 및 DateTime 스트링으로 변환 포맷 lizard2019 2019.01.23 23146
42 Customizing GINA, Part 1 digipine 2017.10.28 21759
41 VC++ UTF8 변환 관련 매크로 digipine 2017.11.02 8779
40 The .Net Developer's Guide to Directory Services Programming digipine 2017.10.29 7240
39 [C#] 프로그램 종료 방법 lizard2019 2019.01.23 6866
38 [API Hooking] Dll Injection 하는 방법 digipine 2017.10.29 5233
37 [WIN32] Process ID로 HWND 구하기 digipine 2017.10.29 5037
36 [WIN32] 실행 중인 프로세스를 외부에서 강제로 종료, 안전한 TerminateProcess digipine 2017.10.29 3467
35 [Windows] DOS 명령어 실행하고 결과 스트링 가져오는 샘플 코드 digipine 2017.11.02 2689
34 VC++(MFC)에서 MDB 생성 / 압축 / 연동관리자 digipine 2017.10.29 2658
33 [WIN32] API Hook 정리 문서 digipine 2017.10.29 1973
32 [VC++, WInAPI] 폴더를 통채로 지우기, 서브 폴더 포함, DeleteAllFiles digipine 2017.10.29 1763
31 [WIN32, WINCE] 디스크 용량 구하는 방법 API GetDiskFreeSpaceEx digipine 2017.10.29 1572
30 [Win API]프로세스 아이디와 윈도우 핸들을 이용 파일명 구하기 digipine 2017.10.29 1396
29 C# - 한글로된 폰트명 처리 방법 개선 (Font Name Localization) digipine 2017.11.02 1393
28 RPC에 대하여... (1) : RPC 가 사용하는 TCP/IP 포트는 ? digipine 2017.10.29 1296
27 GINA(Graphical Identification aNd Authentication), SAS(Secure Attention Sequence) digipine 2017.10.29 1261
26 RPC에 대하여... (2) : RPC 가 사용하는 포트를 바꿔보자 digipine 2017.10.29 1118
Board Pagination Prev 1 2 3 Next
/ 3