이글루스 | 로그인  


태블릿 산 기념으로...



  생각보다 뻑뻑한 느낌이 그리 달갑지는 않지만, 내꺼가 생겼다는 것만으로 일단 만족.

  누나껄 일일이 빌려쓰지 않아도 되니 앞으로 간단한 그림들을 계속 그리게 될지 모르겠네요.


by 고양이씨 | 2009/11/11 21:50 | 컴퓨터로의 그림들 | 트랙백

형식화된 입력



  -scanf() 함수

  가변적인 개수의 인수를 받아들이며 최소 2개의 인수를 필요.

  첫번째 인수는 입력된 내용을 변환하는 방법을 scanf()에게 알려주기 위해 특수한 문자를 사용하는 형식화 문자열이며 두번째 인수와 추가 인수는 입력된 데이터가 저장되는 변수 주소.



  -scanf()의 형식화 문자열

  빈칸이나 탭은 무시되지만 형식화 문자열을 더욱 읽기 쉽게 만들기 위해 사용.

  %가 아닌 문자는 입력시 공백 문자가 아닌 문자들과 함께 scanf()의 동작에 관여.

  % 문자와 특수한 의미를 가지는 문자로 구성되는 하나 이상의 변환 문자는 일반적으로 각각의 변수에 대응하는 하나의 변환 문자를 가지고 있다.

  반드시 포함되어야 하는 것은 변환 문자. 각각의 변환 문자에는 %기호로 시작하고 특별한 순서에 의해서 선택적으로 사용되거나 반드시 포함되어야 하는 구성요소를 가진다.



  -구성

  % 문자 바로 다음에 입력되는 선택적인 할당 제한 문자(*)는 현재의 변환 문자에 대응하는 변환을 수행하지만 결과는 무시하도록 지시.

  필드 폭은 입력 필드의 폭을 문자 단위로 지정하는 값. 현재의 변환 동작을 수행하기 위해 stdin에서 몇 개의 문자를 입력해야 하는지 지정한다. 필드 폭을 지정하지 않으면 다음에 나타나는 공백까지로 정해진다.

  형 지정자는 변환 문자에서 % 외에 반드시 포함되어야 하는 하나의 구성 요소. scanf()가 입력 내용을 받아들이는 방법을 알려주는 하나 이상의 문자.

  정밀도 지정 문자가 포함되면 형 지정자의 의미가 바뀐다. 정밀도 지정 문자는 h, I, L이 될 수 있다.



  -변환 문자에 포함되는 형 지정자.

  1. d - int * - 10진 정수형

  2. i - int * - 10진 정수형, 앞에 0을 포함하는 8진 정수형, 앞에 0x나 0X를 호함하는 16진 정수형

  3. o - int * - 앞에 0을 포함하거나 포함하지 않는 8진 정수형

  4. u - unsigned int * - 부호 없는 10진 정수형

  5. x - int * - 앞에 0x나 0X를 포함하거나 포함하지 않는 16진 정수형

  6. c - char * - 하나 이상의 문자를 읽어들이고 인수에 의해 지정된 메모리 영역에 순서대로 저장. 종료 문자 \0는 추가되니 않는다. 필드 폭이 지정되지 않으면 한 문자를 읽어들이고 필드 폭이 주어지면 공백을 포함하여 지정된 수의 문자를 읽어들인다.

  7. s - char * - 공백이 아닌 문자로 구성되는 문자열을 지정된 메모리 영역에 저장하고 종료 문자 \0을 추가.

  8. e, f, g - float * - 부동 소수형 숫자. 숫자는 소수점 형태나 공학식 표기 방법으로 입력할 수 있다.

  9. [...] - char * - 문자열.괄호 내에 포함되어 있는 문자만 입력. 입력 동작은 일치하지 않는 문자가 나타나거나 지정된 필드 폭 이상 사용되거나 엔터 키를 누르는 즉시 종료. 문자 ]를 입력하기 위해서는 []...]와 같이 처음에 위치시켜야 한다. 문자열의 마지막은 종료 문자 \0이 포함.

  10. [·...] - char * - 괄호 내에 포함되지 않는 문자가 입력되는 것을 제외하면 [...]와 동일

  11. % - 없음 - 문자 그대로 5 문자를 읽어들인다. 할당 동작은 수행되지 않는다.



  -정밀도 지정 문자

  h - 형 지정자 d, i, n, o, u, x 앞에 사용될 때 인수가 int형이 아니라 short형에 대한 포인터라는 것을 지정. PC에서는 short형이 int형과 동일하므로 전혀 필요 없다.

  I - 형 지정자 d, i, n, o, u, x 앞에 사용될 때 인수가 long형에 대한 포인터라는 것을 지정. 형 지정자 e, f, g 앞에 사용될 때 인수가 double형에 대한 포인터라는 것을 지정.

  L - 형 지정자 e, f, g 앞에 사용될 때 인수가 long double형에 대한 포인터라는 것을 지정.



  책에서는 나머지 문자를 다루는 방법이 나와있지만 여기에서는 보류.

  ...그나저나 내가 지금 제대로 공부하고 있는 것 맞는지 모르겠다.


by 고양이씨 | 2009/04/08 13:47 | 현제의 공부현황 | 트랙백

문자, 문장 입력.



  *문자 입력

  일부 문자 입력 함수는 엔터를 누를 때까지 입력된 모든 문자를 운영체제가 임시 저장 영역에 보관해둔 상태에서 시스템이 문자를 stdin으로 보내기 위해 버퍼를 가진다.
  어떤 함수는 각각의 문자를 입력하는 즉시 stdin으로 전달된다.

  일부 입력 함수는 각각의 문자가 입력될 때 자동으로 stdout로 표시된다.
  어떤 함수는 표시되지 않는데, 이런 함수에서는 문자가 stdin으로 바로 전달된다.



  -getchar() 함수

  스트림 stdin에서 문자를 읽어드리는 함수.

  버퍼를 사용하고 문자 입력을 화면에 표시한다.



  -getch() 함수

  스트림 stdin에서 문자를 읽어드리는 함수.

  버퍼를 사용하지 않고 문자 입력을 화면에 표시 없이 수행한다.

  ANSI 표준이 아니기 때문에 특정 시스템에 유효하지 않을 수 있으고 환경에 따라 헤더 파일을 요구할 수도 있다.

  일반적으로 헤더 파일은 conio.h이다.



  -getche() 함수

  각각의 문자를 stdin에 표시한다는 것을 제외하고 getch와 비슷하다.

  ANSI 표준은 아니지만 많은 C 컴파일러에서 지원된다.



  -ungetc() 함수

  문자를 되돌리기 위해 사용되는 함수.



  *문장 입력

  입력 스트림에서 한줄의 문자열을 읽어들이는 데 새로운 줄 문자까지의 모든 문자를 읽어드린다.



  -gets() 함수

  stdin에서 한 줄을 읽어들이고 문자열을 저장하는 함수.



  -fgets() 함수

  입력 스트림에서 한 줄의 텍스트를 읽어들인다.

  특정 입력 스트림과 입력되는 최대 문자의 수를 지정할 수 있다.



  ...이 정도가 한계.


by 고양이씨 | 2009/03/19 11:48 | 현제의 공부현황 | 트랙백

스트림.



  -스트림

  일련의 문자. 일련의 바이트로 구성되는 데이터.

  프로그램으로 전달되는 바이트는 입력 스트림, 프로그램에서 외부로 전달되는 바이트는 출력 스트림이다.



  -텍스트 스트림

  텍스트 데이터 같은 문자만으로 구성.

  255자까지의 길이를 가진다.

  문장의 마지막을 나타내는 문자나 새로운 줄 문자에 의해 종료되는 문장으로 구성.

  *표준입출력 파일

  stdin - 표준 입력 - 키보드

  stdout - 표준 출력 - 화면

  stderr - 표준 에러 - 화면



  -스트림 함수

  *표준 라이브러리의 스트림 입출력 함수

  printf() - fprintf() - 형식화된 출력

  vprintf() - vfprintf() - 인수의 목록을 이용해서 형식화된 출력

  puts() - fputs() - 문자열 출력

  putchar() - putc(), fputc() - 문자 출력

  scanf() - fscanf() - 형식화된 입력

  gets() - fgets() - 문자열 입력

  getchar() - getc(), fgetc() - 문자 입력

  perror() -  - stderr로 문자열 출력

  대부분의 함수는 stdlib.h가 필요하다.

  함수 vprintf(), vfprintf()를 사용하려면 stdargs.h를 포함시켜야 한다(UNIX 시스템에서는 varargs.h를 포함시켜야 한다).



  어쩐지 알아듣기 힘들게 작성되어졌지만... 뭐, 어차피 개인적인 공부이니 상관은 없겠지.


by 고양이씨 | 2009/03/15 15:31 | 미분류 | 트랙백

'고급 프로그램 제어'장 마지막.



  -switch문

  프로그램 내에 포함되는 두 가지 이상의 값을 기본으로 하여 여러 가지 문장을 실행하게 해주는 제어문.

  중첩된 if문을 대신할 수 있는 문.



  -exit() 함수

  프로그램 실행을 종료하고 제어를 운영체제에게 돌려주는 함수.

  실행 문제가 있었는지 없었는지를 지적하기 위해 운영체제에 전달하는 하나의 int형 인수를 가진다.

  헤더 파일 stdlib.h를 포함시켜야 사용 가능하다.



  -system() 함수

  프로그램 내에서 운영체제의 명령을 실행하게 해주는 함수.

  운영체제의 명령이 실행되고 나면 제어는 바로 다음 문장으로 전달된다.

  이 함수에서 사용한 명령이 운영체제에서 유효하지 않다면 Bad command or file name 에러 메시지가 출력된다.

  헤더 파일 stdlib.h를 포함시켜야 한다.



  ...c언어를 공부한지 벌써 몇 달이나 지났건만, 지금 진행한 부분은 14일 부분인 '고급 프로그램 제어'장 뿐.

  자율적으로 공부하는 것이라 이런 것에 익숙치 않는 나에게 있어서는 이런 부분이 부담되는 것은 어쩔 수 없나보다.


by 고양이씨 | 2009/03/14 13:58 | 현제의 공부현황 | 트랙백

◀ 이전 페이지          다음 페이지 ▶