본문으로 바로가기

[C언어] 기본입출력

category C 2014. 5. 2. 15:09

출력 함수

printf, putchar, puts, putch

입력 함수

scanf, getchar, gets, getch

 

printf

printf("abcde");

printf("abc\nde"); // \n 은 Enter키를 치는 효과와 같다.

printf("abc\tde"); // \t 은 TAB키를 치는 효과와 같다.

printf("abc\\de"); // \를 표현해주기 위해서는 \\ 두번을 넣어야 한다.

 

char a = 127, b = -1;

printf("a=%d  b=%d\n", a, b);

%d decimal 10진수

 

printf("a=%u  b=%u\n", a, b);

%u unsigned 10진수

 

printf("a=%o  b=%o\n", a, b);

%o octal 8진수

 

printf("a=%x  b=%x\n", a, b);

%x hexa 16진수 소문자  %X 대문자 표기

 

printf("a=%p  b=%p\n", &a, &b);

%p pointer 주소값 표시

 

printf("a=%c  b=%c\n", a, b);

%c character 주소값 표시

 

 

printf("a=%p  b=%p\n", &a, &b);

%p pointer 주소값 표시

 

printf("a %% b= %d\n", a % b);

%% %문자 그자체를 표시 (가끔씩 헷갈리기 쉽다)

 

float pi = 3.14f; // Tip 3.14f 는 4bytes float를 의미 3.14는 8bytes double을 의미

printf("파이(고정소수점) = %f\n", pi); // 파이(고정소수점) = 3.140000

%f 고정 소수점 표시

소수점 1자리만 표시하고 싶다면 %.1f

소수점 2자리만 표시하고 싶다면 %.2f

 

printf("파이(부동소수점) = %e\n", pi); // 파이(부동소수점) = 3.140000e+000
%e 부동 소수점 표시

 

printf("파이(일반소수점) = %g\n", pi); // 파이(일반소수점) = 3.14

 

%g 일반 소수점 표시

 

char name[10] = "Neo";

int age = 20;

printf("Your name is %s. Your are %d years old.\n", name, age);

%s 문자열로 출력한다.

정확한 의미는 문자열의 끝을 알리는 NULL를 만날때 까지 출력하라는 의미이다.

 

scanf

scanf 는 콘솔창의 키보드로 부터 형식화(포맷화)된 입력으로 받는다.

형식화된 입력이란 scanf 의 인수 중 문자열에서 어떤 데이터 형식으로 받을지 지정하여 입력받은 후 대응되는 변수의 주소값을 이용하여 입력 받은 데이터를 저장한다. % 형식은 printf와 별반 차이가 없다.

int a;

scanf("%d", &a); // 변수 a 안에 키보드로 부터 정수형의 데이터를 입력받는다.

<질문1>

왜 입력을 받을때 주소값이 필요할까?

 

<질문2>

char name[10];

scanf("%s", name);  // 1번

scanf("%s", &name);  // 2번

어떤 문장은 맞는 표현일까?

 

int a, b, c;

float d;

char name[10];

scanf("%s%d%d%d%f", name, &a, &b, &c, &d); // 여러 데이터를 한꺼번에 처리할 수 있다.

 

유의점

1. printf 와 달리 공백이 들어가 있으면 안된다. 초보들이 흔히하는 실수

 

scanf("%d %d %d", &a, &b, &c); (X)

 

2. %c를 써서 입력 받기를 원할때 문제가 될 수 있다.

#include <stdio.h>
void main()
{
 int a;
 char b;
 char name[10];
 scanf("%d%c%s", &a, &b, name);
 printf("a = %d  b = %c  name = %s\n", a, b, name);
}

제대로 된 출력이 나오는지 확인한다.

 

#include <stdio.h>
#include <conio.h>
void main()
{
 int a = 1;
 
 char name[10]= "Neo";
 char b =getch();
 putch(b);
 printf("a = %d  b = %c(%d)  name = %s\n", a, b, b, name);
}

 

디버그하는 방법을 알아보자!