梅雨の候・・
さて
最近手が空いたのでC言語を勉強したいます。
今さらですが
http://oshiete.goo.ne.jp/qa/8897349.html
で
if ( argc < 2 ){ ですが
if ( argc < 1) にすると file mei ga na と表示されないのでしょうか?
試す環境がございませんので、分かりませんが、
私的には file mei ga na のでしたら argc < 1で
一つもファイルが存在しないとの意味としてOKみたいですが!
ご教授のほどをよろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
Java や C# のように現代的な言語なら、
args にはプログラム引数のみが入るので
if ( args.length < 1 )
で問題ありません。
C 言語の場合は、args に「プログラム名」も含む仕様となっていますので、
argc は通常 1 以上の値になります。(用途によって例外あり)
参考)
JISX3010 プログラム言語 C
5.1.2.2.1 プログラム開始処理
argv[0] が指す文字列は、プログラム名を表す。
argv[1] から argv[argc-1] までが指す文字列は、プログラム仮引数を表す。
なので、"file mei ga nai" というよりも「プログラム引数が一個も無い」を表す条件は
if ( argc < 2 )
または
if ( argc == 1 )
でなければなりません
以下
ありがとうございました。
Java や C# のように現代的な言語なら、
args にはプログラム引数のみが入るので
if ( args.length < 1 )
で問題ありません。
C 言語の場合は、args に「プログラム名」も含む仕様となっていますので、
argc は通常 1 以上の値になります。(用途によって例外あり)
なるほどですね^^
No.2
- 回答日時:
argc と argv[] については、詳しい解説をお読みいただくことをお勧めします。
さて、argv[] にはコマンドラインの引数が順次格納されますが、例えば、
test file1
というコマンドライン(test がコマンドで、 file1 が引数)の場合、
file1 は、argv[1] に格納されます。
で、argv[0] には、test というプログラムのファイルの名前(通常は、フルパスが多いと思います)が格納されます。
で、この場合、有効な引数は、argv[0] と argv[1] で、argc は、2 になります。
ファイルが指定されないとしても、argv[0] は必ず使われますので、argc は 1 以上になります。
以下了解です。
ありがとうございました。
ファイルが指定されないとしても、argv[0] は必ず使われますので、argc は 1 以上になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語のファイル入力が分かりません 2 2022/05/22 06:35
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Linux Cプログラミングを学ぶた...
-
右ビットシフト
-
プログラミングについて。 1つ...
-
プログラミングの授業の課題です
-
Notepad++の関数リスト表示の変...
-
S-JIS → JIS コード変換するには
-
C言語をコンパイルするとコンピ...
-
こんなことてしますか??
-
[C言語]fputsとfprintfの違い
-
これなにがちがうんですか??
-
win10で、正確な待ち時間の作り方
-
システムエンジニアの適正について
-
ArduinoでMouse関数を使用して...
-
gccを行ってもexeファイルが生...
-
C言語 バッファについて。
-
整数1〜99を入力させ、それを英...
-
C言語初心者 ポインタについて...
-
あなたは、Excelはどうやって学...
-
LinuxカーネルのCFSで用いられ...
-
卒業研究でよく分からないとこ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 配列と関数の練習問題
-
システムエンジニアの適正について
-
[C言語]fputsとfprintfの違い
-
C言語をコンパイルするとコンピ...
-
mallocについて
-
どちのほうがすきですか?
-
ArduinoのジャイロモジュールMP...
-
大量のデータを読み込んで表示...
-
gccを行ってもexeファイルが生...
-
VisualStudio2022でC言語プログ...
-
C言語 列挙型(enum型)変数について
-
こんなことてしますか??
-
C言語の関数と配列に関する質問
-
Linuxでの開発環境構築や設定の...
-
質問失礼します。 プログラム言...
-
MACで動く実行ファイルをWindow...
-
WindowsのCapsLock(キャップス...
-
これなにがちがうんですか??
-
卒業研究でよく分からないとこ...
-
gcc13.2のバグ?
おすすめ情報
皆様ご回答誠にありがとうございました。
参考書の○ステップC言語入門P227に
詳しいことはわかりませんが!
ヌル文字との関係があるみたいです。
・ヌル文字がないとどうなるのか
ヌル文字がない文字列は、終了位置の指定がないため、どこまでが文字列かわかりません。
そのため、printfなどで表示させようとしたとき、配列の大きさを超えて、本来の配列の記憶場所
でない部分まで表示されてしまいます。
文字列の終わりには必ずヌル文字がを入れることを心がけながらプログラミングを行いましょう。
以上
文章でいうならば、何処までかわからないので、文章の終止符.みたいなものかなと^^
以上コメントの続きですが
また同参考書P279
以下!のコマンドライン引数 abc xyz 123~(argcの値は4)
$ example9 abc xyz 123
argcには、そのプログラムを実行したときに指定された引数+1が渡されます。example9eを
実行したときに、example9の後に引く数3つの引数を指定したなら、argcの値は4になります。
プログラム名も引数の一つと考えので、引数プラス1になります。
プログラムの実行時に引数を一つも指定しない場合は、argcの値は1となります。
以上ですが
「引数を一つも指定しない場合は、argcの値は1となります。」
ということなので、if ( argc < 2 ){ と結論付けました。
汗汗