EASY7
[c언어] scanf / gets / fgets 본문
1.
#include <stdio.h>
scanf("포맷", &변수)
format을 통해 정확한 입력을 할 수 있다.
하지만 공백을 읽을 수가 없어서 문자열을 받는데에 부적합하다.
2.
#include <stdio.h>
gets(변수)
1줄을 입력할 때
줄 바꿈(엔터)키를 누를 때까지 1줄을 읽는다.
읽은 문자열은 줄 바꿈하는 곳에서 \0이 붙여진 배열이 저장된다.
※gets 함수는 크기에 제한을 두지 않기 때문에 위험한 함수라서 추천하지 않는다. 에러가 퐉 뜸
3.
#include <stdio.h>
fgets(변수, sizeof(변수), stdin)
fgets사용1
printf("텍스트 끝에 삽입할 라인:\n");
fflush(stdin);
while (fgets(newElement, MAX_CHAR_PER_LINE, stdin) != NULL)
{
printf("%s\n", newElement);
}
fgets사용2
while (getchar() != '\n');
fgets(newElement, MAX_CHAR_PER_LINE, stdin);
printf("%s\n", newElement);
버퍼를 지울 때도
fflush(stdin); --> visual studio2015 이전 버전
while (getchar() != '\n'); -->visual studio 2015 부터
gets할 때도
gets(sentence); --> visual studio2015 이전 버전
gets_s(sentence, sizeof(sentence)); -->visual studio 2015 부터
fgets할 때도
fgets(sentence); --> visual studio2015 이전 버전
fgets_s(sentence, sizeof(sentence)); -->visual studio 2015 부터
'개발 공부 > C' 카테고리의 다른 글
[c언어] 디버깅 debuging (0) | 2017.09.28 |
---|---|
[c언어] string.h 함수 (0) | 2017.09.28 |
C언어 fflush(stdin) gets()가 안돼요 (0) | 2017.05.28 |
구조체와 함수 (0) | 2017.05.09 |
char type array (문자형 배열) 초기화 (0) | 2017.03.23 |