scanf()
( )안에 여러가지 format을 지정할 수 있다.
#include "stdafx.h"
#include <stdio.h>
int main(void)
{
char str[100];
printf("문자열을 입력하세요.\n");
scanf("%s", &str);
printf("입력한 문자열은 %s 입니다.\n", str);
return 0;
}
위의 출력 결과에서 알 수 있듯이 scanf()로는 공백을 읽을 수가 없기 때문에 문자열을 입력받는 적합하지 않다.
gets() 함수
- 1줄을 입력할 때는 gets( ) 함수를 사용한다.
- 줄 바꿈(엔터)키를 할때까지 1줄을 그대로 읽어들인다.
- 읽어들인 문자열은 줄바꿈 하는 곳에서 \0이 붙여진 배열에 저장된다.
#include <stdio.h>
int main(void)
{
char str[100];
puts("문자열을 입력하세요 : ");
gets(str);
printf("입력한 문자열은 %s 입니다. \n", str);
return 0;
}
fgets( )함수
1에서 버퍼에 대한 포인터를 받는다.
2에서 문자열의 최대크기(\0포함) 을 받는다.
3에서 file이라고 뜰 것이다. 여기서 stdin을 쓴다. 이 의미는 표준 입력장치(키보드)에서 데이터를 입력받겠다는 뜻이다.
배열이면 sizeof을 써서 길이를 구하지만, 포인터라면 길이를 직접(2번에다가) 입력해주어야 한다.
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[100];
puts("문자열을 입력하세요 ");
fgets(str, sizeof(str), stdln);
puts(str);
return 0;
}
'C > 입출력' 카테고리의 다른 글
입출력할때 주의해야할 점 (0) | 2019.08.06 |
---|