C言語関係掲示板

過去ログ

No.215.main関数の引数について


No.1319

main関数の引数について
投稿者---ひで(2002/03/25 22:05:44)


教えて下さい。

main関数の引数にchar型にして、printfで確認すると、自分の意図した
文字が表示されないのですがなぜでしょうか。

抜粋していますがこんな感じです。
void main ( char x )
{
printf("%c",x);
}

ちなみに、関数内でscanf関数でキーボードから入力すると、ちゃんと表示
されるのですが。。。


No.1320

Re:main関数の引数について
投稿者---2児のオヤジ です。(2002/03/25 22:24:29)


>main関数の引数にchar型にして、printfで確認すると、自分の意図した
>文字が表示されないのですがなぜでしょうか。

ここで、確認出来ると思います。

第5章標準入出力関数(1)
http://www9.plala.or.jp/sgwr-t/sec5.htm#s5-1

No.1323

Re:main関数の引数について
投稿者---ともじ(2002/03/25 22:48:00)


こんばんは。

>main関数の引数にchar型にして、printfで確認すると、自分の意図した
>文字が表示されないのですがなぜでしょうか。
>
>抜粋していますがこんな感じです。
>void main ( char x )
>{
> printf("%c",x);


これはコマンドライン引数の指定の仕方が間違っていますね。
詳しくは、http://www9.plala.or.jp/sgwr-t/sec11-4.htmを参照してください。

とりあえず、上記を直すと、
void main(int argc,char *argv[])
{
	printf("%c",*argv[1]);

になります。


No.1325

Re:main関数の引数について
投稿者---2児のオヤジ です。(2002/03/25 23:04:41)




>これはコマンドライン引数の指定の仕方が間違っていますね。
>詳しくは、http://www9.plala.or.jp/sgwr-t/sec11-4.htmを参照してください。
>
>とりあえず、上記を直すと、
>
void main(int argc,char *argv[])
{
	printf("%c",*argv[1]);

>になります。

いや〜、勘違いしました、勉強不足です。nobuさんには申し訳ないです。
また、ガンバリます!!

No.1327

Re:main関数の引数について
投稿者---C職人(2002/03/25 23:11:27)


>こんばんは。
>
>>main関数の引数にchar型にして、printfで確認すると、自分の意図した
>>文字が表示されないのですがなぜでしょうか。
>>
>>抜粋していますがこんな感じです。
>>void main ( char x )
>>{
>> printf("%c",x);
>
>
>これはコマンドライン引数の指定の仕方が間違っていますね。
>詳しくは、http://www9.plala.or.jp/sgwr-t/sec11-4.htmを参照してください。
>
>とりあえず、上記を直すと、
>
void main(int argc,char *argv[])
{
	printf("%c",*argv[1]);

>になります。

サンプルプログラム
#include <stdio.h>

int main(int argc,char *argv[])
{
if(argc != 2){
fprintf(stderr,"使用法:実行ファイル名 文字列");
return 1;
}

/*文字列表示*/
printf("%s\n",argv[1]);

return 0;
}
main関数の引数は文字ではなく文字列として受け取る仕組みになっています。
だから、%sを使って表示させるか、ともじさんのように文字列として受け取ったものの最初の文字を%cで表示させるかのどちらかです。
ただあくまで文字列として受け取るということは抑えておいたほうがいいと思います。


戻る


「初心者のためのポイント学習C言語」 Last modified:2002.05.26
Copyright(c) 2000-2002 TOMOJI All Rights Reserved