• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コマンドライン入力)

コマンドライン入力でのファイル読み取りに関する質問

このQ&Aのポイント
  • コマンドライン入力で指定したファイルから文字を読み取るプログラムについて質問です。
  • a.datファイルを作成し、コマンドラインから指定した場所の文字を読み取るプログラムが意味不明な記号を表示する問題について教えてください。
  • 質問文章についての要約文の要点は、「コマンドライン入力で指定したファイルから文字を読み取るプログラムについて、問題が発生している」ということです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#22058
noname#22058
回答No.3

fp=fopen("argv[1]","rb"); これは、「argv[1]」という名前のファイルを オープンしようとしています。 argv[1]の前後のダブルクォーテーションは不要です。 おそらくそういう名前のファイルはないはずですから、 fopenに失敗しているでしょう。

noname#168725
質問者

お礼

すばやい回答ありがとうございます。 ダブルクオテーションは不要です 当たりでした。 ありがとうございました。

その他の回答 (2)

  • yukimican
  • ベストアンサー率70% (112/159)
回答No.2

まず、基本中の基本。 fopenしたらfcloseでファイルを閉じましょう。 a.datには文字列が正しく保存されていますか? ファイルを開くとき、エラーは起きていませんか? scanfで取得した整数値がファイルサイズを超えていたりしませんか? 何か問題が起きたときは、焦らず騒がず、 じっくりと調べていきましょう。

noname#168725
質問者

お礼

すばやい回答ありがとうございます。 もう一度よく調べてみます! では。

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

> fp=fopen("argv[1]","rb"); 正しくファイルが開けているのなら、NULL以外の値が帰ってきます。 NULLだったらファイルオープンに失敗で終了してください。 後は、argvを扱うサンプルプログラムとよ~く見比べると…。 逆に、前半のファイルを作成するプログラムを、a.datに固定でなく、同様にargvのファイル名に出力するよう、変更してみては?

noname#168725
質問者

お礼

すばやい回答ありがとうございます。 参考にしてみます!