dポイントプレゼントキャンペーン実施中!

「実行時のコマンドライン引数でファイル名を1つ受け取り、そのファイルの内容を読み込んで、3つの情報(ファイル名・行数・文字数)を画面に表示するプログラムを作成しなさい。ただし指定したファイルが存在しない場合はエラーメッセージを出力し、引数の指定が不適切な場合は用法を指定して出力すること。」といった問題があるのですが、作り方がいまいちよく分かりません。
どうすればいいでしょうか。

A 回答 (6件)

いちおうねんのため.



「行数」とか「文字数」とかを
どう数えるのか
って, 決めておかないとどうにも作りようはないよ.

特に「文字数」は....
    • good
    • 0

作りました。


ここをクリックするとhogehoge.exeがありますのでそれを適当なフォルダーにダウンロードしてください。
そしてLINEのプロパティのリンク先をhogegoge.exeにしてください。
そしてLINEをダブルクリックするとコマンドプロンプトが開きposswordをきいてきますのでhogehogeと入力するとラインが立ち上がります。

http://totosrv.dip.jp/c/hogegogeline/
    • good
    • 0

答から申し上げます


あくまでも一例です。
ここをクリックしてcount.cをダブルクリックしてください
http://totosrv.dip.jp/c/count
実行するにはコマンドプロンプトにて
count sample.txt
でwindowsで実行出来ます。
用法の部分は考えてみてください。
応援してます。
頑張ってください
    • good
    • 0

「行数」にしても「ファイル名」にしても, 基本的には


単純にそれらを出力する
ことを想定してるんじゃないかなぁ. 「いまいちわからない」が「どこまでできていてどこで困っている」ことを表すのかはさっぱりわからんけど.

「リダイレクトされていても何がどうであっても, 何が何でも『画面』に『表示』しろ」っていうお題だとこの情報ではどうにもならんし.
    • good
    • 0

コマンドライン引数を受け取るのは、お約束の書き方があります。


test.exeというプログラムを、コマンドラインで、

test fairu1.txt

と呼び出したとすると、

int main(int argc, char** argv)の、
 argcに2
 argv[0]に"test"
 argv[1]に"fairu1.txt"
が格納されます。


引数が1個かどうか?は、argcが2かどうかで確認。
引数のファイル名はargv[1]なので、ファイルオープンしてみてエラーかどうか?
とか。
    • good
    • 1
この回答へのお礼

ありがとうございます!引数の個数は理解できたのですが、受け取ったファイル内容の行数とファイル名の画面表示の仕方がいまいちよくわからないんです。。

お礼日時:2020/11/27 15:12

①コマンドライン引数の個数(=1個)を確認。


違ったらエラーメッセージを吐いて終了(使い方を出力するのが親切)
②ファイルを開く。失敗したらエラーメッセージを吐いて終了。
③ファイルを1行ずつ読み、行数、文字数を数える。
#文字数に行末を含めるのか確認要。
#また文字数は結構奥が深いので注意
#全角は1文字として数えるのかとか、UTF8でサロゲートペアとか・・・
#Cだと大変そう。
④ファイルを閉じる。
⑤ファイル名、行数、文字数を出力する。
    • good
    • 1
この回答へのお礼

アドバイスしていただきありがとうございます!!参考にしてみます!!

お礼日時:2020/11/27 15:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!