C 언어에서 한 줄의 문자열릏 읽어 들이고 싶은 때가 있다.
gnu 컴파일러를 사용한다면, getline을 사용할 수도 있다.
scanf 함수를 이용할 수도 있으나, fgets를 사용하는 것이 가장 좋을 것 같다는 개인적인 생각이다.
fgets 함수는 사용자가 입력한 엔터키 까지 읽어들이기 때문에, 맨 마지막의 '\n' 문자를 제거해 주어야 한다.
이방법 또한 몇가지가 있다. strcspn을 이용한다든지, strchr을 이용한다든지 또는 strlen을 이용하는 방법도 있다.
여기서는 sscanf를 이용하는 방법을 소개하고자 한다.
#include <stdio.h>
//#include <string.h>
int main() {
char s[80];
puts("Enter your addres, for example 'New York'");
fgets(s, sizeof(s), stdin);
sscanf(s, "%[^\n]s", s); //s[strcspn(s, "\n")]='\0';
printf("\nYou seem to live in %s.", s);
return 0;
}
실행 결과는 아래의 그림과 같다.

'C 언어' 카테고리의 다른 글
| C언어를 이용하여 무작위로 사람 이름 만들기 (0) | 2020.12.18 |
|---|---|
| C 언어 Rand 함수를 이용해서 무작위 암호 만들기 (0) | 2020.12.16 |
| C strtok 함수 (1) | 2020.11.19 |
| C 키워드 (0) | 2020.11.11 |
| C 언어 코딩 헥사문자 들 (1) | 2020.11.10 |
댓글