2008年05月11日

【Prob5-5】コマンドライン引数とか

問い
1個以上の整数をコマンド行から入力したとき、それらの和を標準出力するプログラムを作成しなさい。


main(int argc, char *argc[]){ //コマンドライン引数を使いますよっと



コマンドライン引数は数字を文字列として受け取るのでそれを機械が数字として読み込んでくれるように実際的な数字にするためにatoi関数を使います


char suuji="123";
int seisuu=atoi(suuji);


これでcharで宣言された文字列がint型に変換できます。

そのatoi関数を使うには


#include< stdilb.h >


をどっかに入れる必要があるみたいです。


for(i=0; i< argc; i++){ //argcはコマンドラインの文字列の個数を引き取ってます
new[i]=atoi(argv[i]);//配列new[]に一時的にコマンドラインからもらった文字列を数字にして格納してます
plus=plus+new[i];//それを足し合わせる
}


あとはprintfでplusを表示すれば終了です。宣言は省略しました。


つまり

\> ./a.out 4 5 8 -6
11

と足した数字を返します。

argcには「4 5 8 -6」が文字列が合計で4つあるのでint argc=4;として格納されてます。

argv[]にはchar argv[3]={"4","5","8","-6"};として格納されています。

この時点で例えばargv[0]+arg[1]をすれば"4"+"5"といったような文字に文字を足すという意味の不明な状況になっています。

あ+い とかやっているようなものです。計算機も「ねーよwww」と返してきます。

そこれatoi関数を使って"4"を4に、"5"を5にと計算機も数字として理解できる数字へ変換してやってから計算しています。

こんな感じでした。おしまい





この記事へのコメント

name:

mail:

HP:

comment:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。