>  기사  >  백엔드 개발  >  C의 scanf()와 gets()의 차이점(코드 예)

C의 scanf()와 gets()의 차이점(코드 예)

藏色散人
藏色散人원래의
2019-03-25 15:00:332872검색

C의 scanf()와 gets()의 차이점(코드 예)

scanf() 함수

표준 입력(키보드)에서 입력(문자, 문자열, 숫자 데이터)을 읽는 데 사용됩니다.

공백, 개행 문자 또는 파일 끝(EOF)이 나타날 때까지 입력을 읽는 데 사용됩니다.

예를 들어 다음 코드를 참조하세요.

#include <stdio.h> 
int main() 
{ 
    char str[20]; 
    printf("enter something\n"); 
    scanf("%s", str); 
    printf("you entered: %s\n", str); 
  
    return 0; 
}

여기의 입력은 사용자가 제공하고 출력은 다음과 같습니다.

输入: Geeks for Geeks
输出: Geeks

输入: Computer science
输出: Computer

gets() 함수

표준에서 입력을 읽는 데 사용됩니다. 입력(키보드). 개행 문자나 EOF(파일 끝)가 나타날 때까지 입력을 읽는 데 사용됩니다.

#include <stdio.h> 
int main() 
{ 
    char str[20]; 
    printf("enter something\n"); 
    gets(str); 
    printf("you entered : %s\n", str); 
    return 0; 
}

여기서 입력은 다음과 같이 사용자에 의해 제공됩니다.

输入: Geeks for Geeks
输出: Geeks for Geeks

输入: Computer science
输出: Computer science

이들 사이의 주요 차이점은 다음과 같습니다.

scanf()는 공백, 개행 또는 파일 끝(EOF)이 나타날 때까지 입력을 읽습니다. () 읽기 개행 문자 또는 EOF(파일 끝)가 나타날 때까지 입력을 받는 경우 gets()는 공백이 발견될 때 입력 읽기를 중지하지 않고 공백을 문자열로 처리합니다. scanf는 다양한 데이터 유형의 여러 값을 읽을 수 있는 반면, gets()는 문자열 데이터만 가져올 수 있습니다.

차이점은 다음과 같이 표 형식으로 표시할 수 있습니다.

SCANF() GETS()
scanf()를 사용하여 문자열 입력을 읽을 때 공백, 개행 문자가 발생합니다. 또는 파일 끝에서 읽기 중지 gets()를 사용하여 입력을 읽을 때 개행 문자나 파일 끝을 만나면 입력 읽기를 중지합니다.
공백을 문자열로 처리하지만 공백을 만나도 입력 읽기를 중단하지 않습니다.
모든 데이터 유형 입력을 읽는 데 사용됩니다. 문자열 입력에만 사용됩니다.

scanf()를 사용하여 사용자의 전체 문장을 읽는 방법

실제로 전체 문자열을 읽으려면 scanf()를 사용할 수 있습니다. 예를 들어, scanf()에서 %[^n]s를 사용하여 전체 문자열을 읽을 수 있습니다.

#include <stdio.h> 
  
int main() 
{ 
  
    char str[20]; 
    printf("Enter something\n"); 
  
    // Here \n indicates that take the input 
    // until newline is encountered 
    scanf("%[^\n]s", str);  
    printf("%s", str); 
    return 0; 
}

위의 코드는 개행 문자를 만날 때까지 문자열을 읽습니다.

예:

输入: Geeks for Geeks
输出: Geeks for Geeks

输入: Computer science
输出: Computer science

관련 추천: "C Tutorial"

이 기사는 C에서 scanf()와 gets()의 차이점에 대한 것입니다. 도움이 필요한 친구들에게 도움이 되기를 바랍니다!

위 내용은 C의 scanf()와 gets()의 차이점(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.