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
25 RegEnumKeyEx 함수 사용법 digipine 2017.10.29 754
24 [WINCE] Process, Thread API 함수 사용법 digipine 2017.10.29 960
23 [WINCE] 메모리카드 상태 감시 digipine 2017.10.29 327
22 [WINCE] IAT Hooking 방법과 소스 코드 digipine 2017.10.29 659
21 [WINCE] 키보드 및 마우스 메시지 후킹하기 digipine 2017.10.29 809
20 [C#] C#에서 C++ DLL의 Call by Referance out 인수 사용하는 방법 digipine 2017.10.29 1076
19 [C#] Convert char[] to string digipine 2017.10.29 301
18 VS2005 ConvertBSTRToString 에서 LNK2019 에러 대처법 digipine 2017.10.29 192
» VS2003 이상에서 iostream 구현의 문제점 digipine 2017.10.29 256
16 DLL과 EXE간의 데이타 공유하기 digipine 2017.10.29 837
15 Serialize를 이용한 객체 복사하기 (Copy constructor) digipine 2017.10.29 499
14 세마포어의 개념과 사용법 digipine 2017.10.29 765
13 VC++ 에서 대소문자 변경하는 함수 digipine 2017.10.29 311
12 VC++(MFC)에서 MDB 생성 / 압축 / 연동관리자 digipine 2017.10.29 2654
11 CreateSemaphore Semaphore Manager digipine 2017.10.29 447
10 Mutex, Critical Section Class 만들기 digipine 2017.10.29 392
9 Windows API 멀티 쓰레드 구현법 digipine 2017.10.29 691
8 RPC에 대하여... (3) : RPC 작동을 위한 테스트 방법 digipine 2017.10.29 542
7 RPC에 대하여... (2) : RPC 가 사용하는 포트를 바꿔보자 digipine 2017.10.29 1118
6 RPC에 대하여... (1) : RPC 가 사용하는 TCP/IP 포트는 ? digipine 2017.10.29 1295
Board Pagination Prev 1 2 3 Next
/ 3