본문 바로가기

보고서/10월 업무일지

10월 8일 업무일지

switch 문


switch (score)   // ( ) 안은 반드시 정수가 와야한다.
{
case 10 : // : 콜론 주의
case  9 :
grade = 'A';
break;  // 흐름을 정지, 문장의 끝으로간다 -->  }
case 8 :
grade = 'B';
break;
}

(score)에 따라서 case 10 , case 9 , case8 등으로 점프한다.
case 10 으로 가면 break; 가 있을때 까지 위에서 아래로 차례로 실행하게 된다. 여기서 밑의 case 9 는 아무일도 하지않는다.(그냥 점프하는 곳으로 사용)



scanf, 나 getchar 안에 기계어로 키보드릴 입력받는 명령어가 있다.
스캔코드 : 키보드의 코드이며 아스키 코드와는 다르다. -> 리눅스나 윈도우로 들어간다.
리눅스나 윈도우의 키보드 코드를 임시로 저장하는 공간이 있는데 그것을 버퍼라고 부른다.

임시 저장공간을 버퍼라고 부르는데 버퍼를 사용하는 이유는 키보드에 누를 때마다 프로그램으로 문자를 전송하는 것보다 한 줄을 모두 입력받아 한꺼번에 전송하는 것이 전송속도를 줄일 수 있기 때문이다. /버퍼를 사용하지 않는 방식도 있다. 

 

#include <stdio.h>

int main()
{
  char ch;

  printf("Please enter any character: ");
  ch = getchar(); //L을 입력받았다고 하면 L을 입력받고 엔터키도 입력을 받는다.
                    L 1바이트 엔터키 1바이트를 사용하므로 char 가 1바이트이므로 L이 입력되고
                    엔터키는 남아서 scanf 로 입력이 되어서 실행하면 바로 내려가버리게 된다.
                    리눅스에서는 fflush 가 안되기 때문에 도스에서 컴파일후 실행하면 된다.
  putchar(ch);
  printf(" is letter you typed.\n");
  fflush (stdin);  //리눅스에서는 대신에 getchar(); 을 넣으면 같은효과가 난다.
  printf("please enter any character: ");
  scanf("%c",&ch);
  printf("%c is a letter you typed.\n",ch);

  return 0;
}


C 명령어중에 fflush (stdin);가 있는데 이것은  fflush 는 버퍼를 비운다는 명령어이며(잔상 제거), (stdin)은 스탠다드 input을 의미하는
말이다.(보통 키보드)

(2)getche() / getch() / putch()

입력되는 문자를 <엔터키>를 누르지 않고 즉시 읽고 싶은 경우에는 버퍼를 사용하지 않는 getch()함수나 getche()함수를 사용

한다. 두 함수의 차이는 getch() 함수의 경우에는 키보드로부터 입력된 문자를 화면에 출력시키지 않고, getche() 함수는 입

력된 문자를 화면에 출력시킨다. getche()의 'e'는 echo를 의미한다. 두 함수에 대응하는 출력 함수는 putch() 함수이다.

이 함수들은 <conio.h> -리눅스에서는 <ncurses> 파일에 선언되어 있다.

3.5 반복문

2부터 50까지 짝수만 출력

#include <stdio.h>

int main()
{
  
  int num1 =1;
  int num2;

  printf("2 to 50 in even number\n");
  while (num1 <= 25)
  {
  num2=2*num1++;
  printf("%d\n",num2);  
  
  
  }
  
  printf("\n");
  
}


 



'보고서 > 10월 업무일지' 카테고리의 다른 글

10월 12일 업무일지  (0) 2010.10.12
10월 11일 업무일지  (0) 2010.10.11
10월 7일 업무일지  (0) 2010.10.07
10월 6일 업무일지  (0) 2010.10.06
10월 5일 업무일지  (0) 2010.10.05