TECH I.S.

C ユーザー入力


ユーザー入力

C で値を出力するために printf() が使用されることはすでに学習しました。

ユーザー入力を取得するには、scanf() 関数を使用できます。

ユーザーが入力した数値を出力します。

// Create an integer variable that will store the number we get from the user int myNum; // Ask the user to type a number printf("Type a number: \n"); // Get and save the number the user types <strong>scanf</strong>("%d", &myNum); // Output the number the user typed printf("Your number is: %d", myNum);

実行例 »

scanf() 関数は 2 つの引数を取ります。変数の形式指定子 (上記の例では %d) と、変数のメモリ アドレスを格納する参照演算子 (&myNum) です。メモリのアドレスと関数については、次の章で詳しく説明します。

複数の入力

scanf() 関数では、複数の入力 (次の例では整数と文字) も許可されます。

// Create an int and a char variable int myNum; char myChar; // Ask the user to type a number AND a character printf("Type a number AND a character and press enter: \n"); // Get and save the number AND character the user types <strong>scanf("%d %c", &myNum, &myChar);</strong> // Print the number printf("Your number is: %d\n", myNum); // Print the character printf("Your character is: %c\n", myChar);

実行例»


文字列入力を取る

ユーザーが入力した文字列を取得することもできます。

ユーザーの名前を出力します。

// Create a string char firstName[30]; // Ask the user to input some text printf("Enter your first name: \n"); // Get and save the text scanf("%s", firstName); // Output the text printf("Hello %s", firstName);

実行例 »

注: scanf() で文字列を操作する場合、文字列/配列のサイズを指定する必要があります (この例では 30 という非常に大きな数値を使用しましたが、少なくとも名前に十分な文字が格納されることは確実です)。 参照演算子 (&) を使用する必要はありません。

ただしscanf()関数にはいくつかの制限があります。スペース (空白、タブなど) を終了文字と見なすため、(多くの単語を入力しても) 1 つの単語しか表示できません。例えば:

char fullName[30]; printf("Type your full name: \n"); scanf("%s", &fullName); printf("Hello %s", fullName); // Type your full name: John Doe // Hello John

上記の例から、プログラムは "John Doe" を出力すると予想しますが、"John" しか出力しません。

そのため、文字列を操作するときは、fgets()する機能テキストの行を読む.次の引数を含める必要があることに注意してください: 文字列変数の名前sizeof(*string_name*)、 およびstdin:

char fullName[30]; printf("Type your full name: \n"); fgets(fullName, sizeof(fullName), stdin); printf("Hello %s", fullName); // Type your full name: John Doe // Hello John Doe

実行例»

scanf() 関数を使用して 1 つの単語を入力として取得し、fgets() を使用して複数の単語を取得します。


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細