EASY7

[c언어] scanf / gets / fgets 본문

개발 공부/C

[c언어] scanf / gets / fgets

E.asiest 2017. 9. 28. 21:32

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
Comments