https://woodforest.tistory.com/91
[C] 띄어쓰기/공백 포함한 문자열 입력받기
scanf("%s", str) ..... 는 적합하지 않다. "%s" 는 whitespace(공백) 전까지의 문자열만 입력받기 때문이다. 1 fgets gets()도 있긴 하지만 지양하는 편이 좋다고 한다. 왜냐면! gets는 입력받는 문자열의 길이를
woodforest.tistory.com
1. fgets
공백을 포함한 문자열 = line을 읽고 싶다면 fgets()를 사용한다고 한다. (gets는 위험하기에 사용을 지양하는 게 좋다고)
char* fgets(char* str, int num, FILE* stream);
첫 매개 변수(str)에는 FILE에서 읽은 문자열을 저장할 메모리의 주소 지정
두번째 매개 변수(num)에는 저장할 문자의 최대 개수를 지정
세번째 매개 변수(stream)에는 문자열을 읽기 위해 사용할 파일 포인터를 적어준다. 하지만 파일에서만 읽을 수 있는 것은 아니고 세번째 인자에 stdin을 넣어주면 표준입력을 통해서도 문자열을 입력받을 수 있다고 한다.
fgets (str, 100, stdin); -> 쓰는 법
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=tipsware&logNo=221326391483
fgets 함수로 표준 입력 문자열 처리하기
: C 언어 관련 전체 목차 http://blog.naver.com/tipsware/221010831969아래에 링크한 글은 이 글의 선행 ...
blog.naver.com
2. scanf[]
scanf("%[^\n]s",str);
[]는 scanset character라고 한다. [^\n]라는 뜻은, input입력 값으로 개행(\n)을 받기 전까지 계속 입력받는다는 것
맨 위 블로그에 정리가 잘 되어 있어서 까먹으면 다시 들어가서 보고 참고하자
'Etc. > C' 카테고리의 다른 글
[C] 포인터, 배열, 동적메모리할당 (0) | 2021.10.09 |
---|---|
[C] 데이터 처리 (0) | 2021.09.21 |
[C] 삼항연산자 (0) | 2021.09.21 |
[C/C++] 포인터 (0) | 2021.09.19 |
댓글