2017-12-06 14 views
0

これはcmdでテキストファイルを読み取る方法です。それは制約です。Cでcmdを入力したときにファイル名を読み取る(args [1]を使用)

>gcc -std=c99 myproject.c -o myproject 
>myproject<1.txt 

私が達成しようとしているのは、ファイル内の行の番号を読み取ることができるように文字列としてファイル名 "1.txt"です。 は、私は解決策の束に目を通し、それらのすべては、私がこれを行うときARGV [1]が、お勧め:

int main(int args, char*argv[]) { 
printf("File: %s\n", argv[1]); } 

はそれがヌル出力します。

argsは1を与え、argv [0]はmyprojectを与える。 私は他に何ができるかわかりません。すべて私は与えられた入力ファイルの行数を達成したい。助けてください。ありがとう!

+2

なぜ '<'を入れましたか?それを除く。 – tkausl

+0

@tkauslこんにちは、それはスクリプトがプロジェクトを読むためのものです。 – PhastOfTheFuture

+0

'myproject <1.txt'は' myproject'に引数を渡しません。 'myproject 1.txt'は行います。 –

答えて

2

リダイレクト(<)を使用すると、標準入力でプログラムにデータが与えられます(プログラムはキーボードで入力したのと同じようにデータを表示します)。

myproject 1.txt 

...あなただけの「カウントラインは」それが宿題だ場合、あなたは正しい方法でファイルを扱っている確認し、コマンドwc -lに試してみることにしたい場合:使用の関数fscanf、fgetc関数、fputs、fputc、...標準入力の代わりにscanf、gets、getc、putc、...

+0

これはファイル名を与えるだけで、残りのプログラムはフリーズするので、私にとってはうまくいきません。 – PhastOfTheFuture

+2

問題は「プログラムの残りの部分」にあることがありますか? (上記のコードでは、 'ファイル名を出力しています'という意味です) – DDS

+0

回答が編集されました – DDS

関連する問題