×

[PR]この広告は3ヶ月以上更新がないため表示されています。
ホームページを更新後24時間以内に表示されなくなります。


C言語

プロフィール

プロフィール画像
■ 某国立大学に通う大学生です。
■ サッカー大好き
■ プログラミングを始めてまだ一年です。
>>プロフィールの詳細


C言語


〜キーボードから入力した文字を出力しよう〜

プログラムの変数の初期設定をキーボードから入力できるようにすると、
同じプログラムの変数だけを変えて結果を確認したい場合等に便利です。
三種類の方法をまとめてみたので勉強してみましょう。

必要な文法[scanf,gets,コマンドライン入力]
考え方
ソースプログラム
演習問題

必要な文法[scanf,gets,コマンドライン入力]


scanf
int a;
scanf("%d",&a);

int型変数aにキーボードから入力した値を代入しています。
この場合入力する値は10進数でないとプログラムは動作を終了してしまいます。
もしdouble型であれば%f,文字であれば%cとしましょう。
文字列を読み込みたいときは以下のようにします。
char str[30];
scanf("%s",str);

scanfは空白を読み込めないので「hello world」などは読み込めません。
この場合はgetsを使いましょう。
gets
char str[30];
gets(str);

getsは文字列を一列入力(Enterを押すまで)します。
文字列を代入する配列を用意します。
このとき、要素数は最大の文字数(上の例では30)を表しますので、
十分に長い数を代入する必要があります。
もし文字数が配列の要素数を超えてしまうとエラーが起こります。
コマンドライン入力
int main(int argc;char **argv){
[コマンドライン] $./実行ファイル 引数1 引数2
main関数の引数を上のようにする事で実行するときに引数を入力できます。
argcは引数の数+1を表します。
(引数0として実行ファイルを数えてしまうためです。)
またargvは入力された引数を格納する配列となります。
上の例では
argc=3 argv[0]:実行ファイル名
argv[1]:引数1
argv[2]:引数2
となります。 なお、入力したものは文字、数字問わず、すべて文字として認識されます。
コマンドライン引数を数字に変換したい場合は
以下のようにします。
atoi(argv[1]);

考え方


main関数の中で上記で説明した、scanf,getc,コマンドライン入力の
いずれかを用いてキーボードから入力したものを変数に代入し、
出力するだけです。

ソースプログラム


scanfを使って、数字、文字列を出力

#include <stdio.h>
int main(void){
    int a;
    char str[10];
    scanf("%d",&a);
    scanf("%s",str);
    printf("a = %d\n",a);
    printf("str = %s\n",str);
    return 0;
}

getsを使って文字列を出力

#include <stdio.h>
int main(void){
    char str[30];
    gets(str);
    printf("str = %s\n",str);
    return 0;
}

コマンドライン入力を使って数字、文字列を出力

#include <stdio.h>
int main(int argc,char **argv){
    int a;
    printf("argc = %d\n",argc);
    printf("argv[1] = %s\n",argv[1]);
    printf("argv[2] = %s\n",argv[2]);
    printf("argv[3] = %s\n",argv[3]);
    a=atoi(argv[4]);
    printf("argv[4] = %d\n",a);
    return 0;
}
※./実行ファイル名 文字列 文字列 文字列 数字



実行結果〜scanfを使って、数字、文字列を出力〜

$ ./実行ファイル名
12
I am Japanese
a = 12
str = I
実行結果〜getsを使って文字列を出力〜

$ ./実行ファイル名
I am Japanese
str = I am Japanese
実行結果〜コマンドライン入力を使って数字、文字列を出力〜

$ ./実行ファイル名 I am Japanese 7
argc = 5
argv[1] = I
argv[2] = am
argv[3] = Japanese
argv[4] = 7
理解できましたか。
もし理解できたら以下のプログラムにチャレンジしてみてください。

演習問題


キーボードから10個連続で数値を入力し、
全てを掛け合わせた数値を出力するプログラムを作りましょう


C言語〜キーボードから入力した文字を出力しよう〜トップへ▲
C言語〜サンプルプログラム〜トップへ▲

ホームページ テンプレート フリー">

Design by