C

pchero on August 8th, 2010

 cin 이 제공하는 메소드 중 하나의 문자를 입력받는 get 메소드가 존재하는 것처럼 cout에는 하나의 문자를 출력하는 put 메소드가 존재한다. put 메소드의 사용에는 제약이 따르게 되는데, 이는 put 메소드에서 사용 가능한 파라미터는 단지 하나의 문자(character)뿐이라는 것이다.  물론 숫자를 넘길 수도 있는데, 이 또한 내부에서 문자로 변환하여 화면에 출력하게 된다. 예를 들어 다음을 실행시켜 보자. int letter […]

Continue reading about 출력 스트림에서 한문자씩 출력하기.

pchero on May 17th, 2010

 C++ 프로그래밍을 공부하던 중, 예제 프로그램을 컴파일하다 다음과 같은 에러를 발견했다.  Description    Resource    Path    Location    Type‘nocreat’ is not a member of ‘std::ios’    Config.cpp    /TEMS/src    line 40    C/C++ Problem  환경은 이클립스 3.5.2 버전이었으며, g++ 버전은 version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) 이었다.  문제의 원인을 찾기 위해 구글링을 해보니 답은 간단했다. […]

Continue reading about ios::nocreate

 윈도우에서 네트워크 프로그램 소스를 컴파일 하던 중 이상한 warning 을 발견하였다. C:Documents and SettingsOwnerMy DocumentsNetworkhelloworld_client_winhelloworld_client_win.c(34) : warning C4761: integral size mismatch in argument; conversion supplied 문제의 소스 부분은 다음이었다. servAddr.sin_port = htons(atoi(argv[2])); 보기에는 문제가 없는 부분이다. 정상작동하는 소스였다.(..리눅스에서 확인)  물론 warning 을 무시하고 링크를 하여도 문제없이 프로그램을 잘 실행되었다.  그렇다면 무엇이 문제일까….먼저 C4761 에 관한 내용을 찾아 […]

Continue reading about 윈도우 네트워크 프로그래밍 중 발생한 warning C4761

 네트워크 프로그래밍을 하더도중…한가지 풀리지 않는 의문점이 생겨 KLDP 게시판에 글을 올렸다.  내용 보기 : http://kldp.org/node/90394  글을 올린지 30분도 채 안되서 답변이 올라왔다.  문제인즉…  다음과 같은 코드를 실행했을때…  (Language : c) #include #include #include #include #include   void error_handling(char *message);   int main(void) {     int fildes;     FILE *fp;       fildes […]

Continue reading about 파일 디스크립터와 파일 포인터 사용시 주의점

 scanf 로 문자열을 받고 나면 공백으로 구분되서 남은 문자들이 아직 버퍼에 남아 있기 때문에… fflush(stdin); 을 해줌으로써 버퍼를 비워주는 프로그래밍 기법이 있다.  하지만 이것은 엄밀히 말하면 틀린것이다. 더 정확히 이야기하자면 VC 에서만(아마도..) 된다.  사용자들의 편의를 위해 VC에서 확장의 개념으로 만든것이라 생각하면 이해가 쉬울 것이다.  그렇다면 왜 이것이 안되는 것일까? C FAQ 12.26을 보면 다음과 같은 […]

Continue reading about 리눅스(Unix)에서 fflush(stdin) 사용시 발생하는 문제점.