ホームページ  >  記事  >  バックエンド開発  >  C の scanf() と gets() の違い (コード例)

C の scanf() と gets() の違い (コード例)

藏色散人
藏色散人オリジナル
2019-03-25 15:00:332924ブラウズ

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( ) function

標準入力(キーボード)からの入力を読み取るために使用されます。これは、改行文字またはファイルの終わり (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) に遭遇するまで、gets() は改行またはファイルの終わり (EOF) に遭遇するまで入力を読み取りますが、gets() はスペースが入っても入力の読み取りを停止しません。が見つかりましたが、スペースを文字列として扱います。 scanf は異なるデータ型の複数の値を読み取ることができますが、gets() は文字列データのみを取得できます。

差異は、次のように表形式で表示できます:

SCANF() GETS()
scanf() を使用して文字列入力を読み取る場合、スペース、改行文字、またはファイルの終わりに遭遇すると読み取りが停止します gets() がused to read 入力を取得するときに、改行文字またはファイルの終わりに遭遇すると、入力の読み取りを停止します。
空白を文字列として扱いますが、空白に遭遇しても入力の読み取りを停止しません。
任意のデータ型の入力を読み取るために使用されます。 これは文字列入力にのみ使用されます。

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 チュートリアル

この記事は、C の scanf() と gets() の関係について説明しています。違いも紹介していますので、困っている友達の参考になれば幸いです!

以上がC の scanf() と gets() の違い (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。