演習課題「データを受け取って表示しよう - その 1」
右のコードエリアには、すでにメッセージを表示するコードがあります。標準入力からメッセージを受け取ってそのまま表示するよう、このコードを修正してください。
なお、標準入力のデータは、採点ボタンを押したときに自動的に割り当てられます。このデータは、入力タブと同じように fgets 関数と sscanf 関数 で受け取ることができます。
採点ボタンをクリックして、正解と表示されれば演習課題クリアです!
期待する出力値
Hello
#09:文字列を受け取る
ここでは、プログラムの実行時にデータを受け取る方法を学習します。paiza ラーニングでは、入力タブを使って、プログラムの実行時にデータを受け取ることができます。まずは、文字列を受け取ります。
#include <stdio.h>
int main(void) {
char buf[100];
fgets(buf, sizeof(buf), stdin);
char name[100];
sscanf(buf, "%s", name);
printf("Hello %s\n", name);
}
fgets(エフゲットエス)関数は、指定の場所から文字列データを 1 行ずつ受け取る関数です。
- 1 番目の引数:受け取ったデータを格納する変数を指定します。
- 2 番目の引数は、受け取るデータのサイズを指定します。
- 3 番目の引数は、データを読み込む場所を指定しています。
sscanf(エススキャンエフ)関数は、書式に合わせてデータを取り出して、別の変数に代入する関数です。このとき、余分なデータは代入されません。
- 1 番目の引数:もとになるデータを指定します。
- 2 番目の引数:読み取るデータの書式を指定します。
- 3 番目の引数:読み取ったデータを格納する変数を指定します。
C 言語 ファイルから読み込み【fgetc/fgets/fscanf の使い方】
https://monozukuri-c.com/langc-file-read/
C 言語 sscanf 関数【文字列を解析して変数へ:サンプル付き】
https://monozukuri-c.com/langc-funclist-sscanf/