C언어 scanf 문자열 입력 방법 | 문자열 입력하기

C언어를 공부할 때 scanf() 함수를 학습할 것이다.

scanf() 함수는 C언어에서 키보드를 이용해 문자열을 입력받는 함수이다.

하지만, 현재의 Visual Studio 에서 사용시 권장사용은 아니지만 부득이 사용하는 경우 `#define _CRT_SECURE_NO_WARNINGS` 코드를 사용하거나 또는 권장하는 함수를 사용하는 것이 바람직하다.

거두절미하고, 여기서는 scanf() 함수를 사용하여 키보드를 사용한 문자열을 입력하고 입력한 문자열을 화면에 출력하도록 한다.

C언어 scanf() 함수 사용 방법
C언어 scanf() 함수 사용 방법

1. C언어의 scanf() 함수
- 키보드를 사용한 문자열 입력

scanf() 함수는 C언어에서 사용하는 표준 입력 함수이다.

키보드를 사용하여 문자열을 입력받아 컴퓨터에 명령을 내릴 수 있다.

과거 옛날의 모든 프로그램들을 보면 이러한 문자열 입력방식으로 프로그램을 구동하고, 시스템을 만들고 처리했다.

지금도 볼 수 있는 대표적인 문자열 입력 기능은 터미널 또는 콘솔 화면이다.

2. 문자열 입력 기본 문법 scanf()

C언어에서 scanf() 함수가 어떻게 사용되는지 기본 문법을 살펴보자.

scanf() 함수에는 `형식지정자와 변수주소`를 인자로 받아 사용하며, 형식지정자는 데이터의 형태, 변수주소는 배열 변수명으로 간단히 생각할 수 있다.

char name[20];
    
scanf("%s", name);

여기서 주의할 점이 있다.

%s는 공백 전까지만 입력을 받는다는 점이다.

예를 들어, `홍 길동`을 입력하면 `홍`까지만 저장된다.

공백을 포함한 문자열을 입력받고 싶다면 fgets()를 사용하는 방법이 있다.

또한 Visual Studio에서는 scanf 사용 시 보안 경고가 발생할 수 있다.

이 경우 scanf_s 사용하거나 scanf를 사용하려면 별도의 설정이 필요하다.

3. 예제 코드

scanf() 함수가 C언어에서 키보드를 이용한 문자열 입력을 할 수 있다고 언급하였다.

이제 코드에서 어떻게 사용되는지 살펴 본다.

동작의 구조를 위해 scanf() 함수가 사용되는 곳은 별도의 함수로 작성하였다.

단, 해당 코드에서 주목할 부분이 있는데 `#define _CRT_SECURE_NO_WARNINGS`이다.

`#define _CRT_SECURE_NO_WARNINGS` 은 Visual Studio 에서 보안 경고를 무시하는 지시자이다.

지금의 Visual Studio에서 보안 경고에 해당하는 코드가 있다면 컴파일 단계에서 경고를 하게 되고, 컴파일을 중단하지만, `#define _CRT_SECURE_NO_WARNINGS` 사용시 무시되고 컴파일을 진행한다.

Visual Studio 에서 C언어 사용시 scanf() 함수는 안전하지 않은 보안 취약점이 발견된 후, 컴파일 단계에서 unsafe 경고와 컴파일이 중단되지만 `#define _CRT_SECURE_NO_WARNINGS` 사용하면 경고는 무시되고 scanf() 함수를 그대로 사용할 수 있다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

/* 함수 선언 */
void CallScanf(void);

/* 프로그램 시작 */
int main(void)
{
    printf("\n----- Start 05-Scanf function \n\n");

    /* 프로그램 종료 */
    CallScanf();

    printf("\n----- End \n\n");

    /* 정상 종료 */
    return 0;
}

void CallScanf(void)
{
    char name[255] = "";

    printf("너의 이름은~? 君の名は~? \n");
    printf("=> ");

    scanf("%s", name);

    printf("%s", name);
}

위의 코드에서 주목할 부분은 CallScanf() 함수이다.

CallScanf() 함수의 역할은 사용자가 키보드로 입력한 문자열을 읽고, 화면에 읽은 문자열을 출력한다.

중요한 코드는 다음과 같다.

  • #define _CRT_SECURE_NO_WARNINGS
    - Visual Studio 에서 scanf() 함수 보안 경고 무시
  • char name[255] = "";
    - 문자 배열 255 공간 확보, 빈 문자열로 초기화
  • scanf("%s", name)
    - 키보드로 입력한 문자열 저장.

4. 실행 결과

이제 위의 코드에 대한 실행 결과는 다음과 같다.

코드를 실행하면 printf() 함수를 사용해 질문을 받기 위한 문자열이 출력된다.
여기서는 이름을 받도록 한다.

scanf() 함수가 실행되며 키보드로 문자열을 입력받기 위한 커서가 깜빡 거리는 것을 볼 수 있다.

커서가 깜빡이는 상태에서 문자열을 입력하고 키보드의 엔터를 치면 입력한 문자열이 출력되는 것을 볼 수 있다.

scanf() 실행결과
scanf() 실행결과

댓글

파이썬 시작 문자열 출력문 print | 그놈의 Hello World

이미지
코딩을 위한 프로그램 언어를 공부하면 처음 만나는 것이 `Hello World`이다. 이 간단한 문장으로 프로그램 언어를 접하면서 코드를 작성하고 출력하는 과정을 알 수 있다. 파이썬에서 `Hello World`문장을 출력하는 것은 print 함수를 사용하면 된다. 비주얼 스튜디오 코드( Visual Studio Code )에서 파이썬 코드의 print 함수를 사용해 `hello world`를 출력해 본다. 파이썬 print / 문자열 출력 파이썬 문자열 출력 print 사용 방법 파이썬에서 문자열을 출력하는 방법은 print() 함수를 사용하는 것이다. 방법은 간단하며 아래와 같다. print("문자열") print(변수) 단순히 문자열을 화면에 출력할 때는 쌍따옴표( " ) 또는 작은 따옴표 ( ' )를 사용해 문자열을 입력하면 된다. 비주얼스튜디오코드에서 사용하기 파이썬에서 문자열을 출력하는 방법은 print 함수를 사용하는 것이다. 비주얼스튜디오코드( Visual Studio Code, 이하 VS Code )에서 파이썬의 print 함수를 사용하여 직접 문자열을 입력하고 출력해 보도록 한다. 순서는 다음과 같다. 비주얼 스튜디오 코드 실행. 파이썬 파일 생성. print 함수 작성 실행 ( 파일 선택 후 Ctrl + F5 ) 단계 진행하기 위의 과정을 하나씩 진행하며 파이썬의 print 함수를 이용해 문자열을 출력해 보자. 비주얼 스튜디오 코드 실행 먼저 비주얼 스튜디오 코드를 실행하여 파이썬 코드를 작성하기 위한 준비를 한다. 비주얼 스튜디오 코드는 파이썬 뿐만 아니라 다양한 웹/앱을 만들 수 있는 무료 IDE 이기에 프로그램 언어를 공부하기에 필수적이다. 비주얼 스튜디오 코드를 실행하면 다음과 같은 화면이 나타날 것이다. 비주얼 스튜디오 코드 IDE 실행 모습 파이썬 파일 생성 Open Folder 를 사용해 임의의 폴더를 열면 위의 이미지와 같은 형태가 될 것이다. 파일도 없고 아무것도 없다. 파일을 하나 생성하자...

이 블로그의 인기 게시물

ChatGPT Codex GitHub 연결 해제 방법 (앱 삭제까지 정리)

C언어 return 종류와 차이 | return, return 0, return -1, return n

다빈치 리졸브에서 배경 화면 색상 변경 방법|검정, 흰색, 투명 배경 색상 바꾸기