掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.27999

コマンドラインからの入力→fopen
投稿者---sierra(2006/08/29 18:23:14)


コマンドラインからの入力による、ファイルオープンがうまくいきません。
コマンドラインから、

>[プログラム名] input.txt
のように書いて、input.txtの中身を表示させたいのですが、開いてくれません。
なお、下記プログラムの、
fp1=fopen(argv[1],"r");

の部分を、

fp1=fopen("input.txt","r");

にした場合、使用している、VisualStudio.NETではプログラムは動いてくれるのですが、コマンドラインから動かそうとすると、動作しません。
どなたか、解決策をよろしくお願いします。


#include <studio.h>
main(int argc,char* argv[]){

FILE *fp1;
char c;

fp1=fopen(argv[1],"r");
while((c=getc(fp1))!=EOF){
printf("%c",c);
}

fclose(fp1);
}




この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:コマンドラインからの入力→fopen 28000 円零 2006/08/29 18:44:57
<子記事> Re:コマンドラインからの入力→fopen 28002 nano 2006/08/29 21:00:20


No.28000

Re:コマンドラインからの入力→fopen
投稿者---円零(2006/08/29 18:44:57)


ちゃんと表示されますけど(「studio.h」は訂正するとして)。
ファイル名が間違ってるだけじゃないですか?

例えば、下記のようにフルパスで指定してもダメですか?

>[プログラム名] "C:\\Documents and Settings\\user0001\\My Documents\\新規テキスト ドキュメント.txt"




この投稿にコメントする

削除パスワード

No.28001

Re:コマンドラインからの入力→fopen
投稿者---sierra(2006/08/29 19:05:57)


円零さん、レスありがとうございます。

フルパスはしていたんですが、""が必要だったんですね(汗
課題がいっぱいいっぱいだったので、本当に助かりました。

ありがとうございました。



この投稿にコメントする

削除パスワード

No.28003

Re:コマンドラインからの入力→fopen
投稿者---breakwind4u(2006/08/30 12:13:29)


'\'はひとつずつでよいのでは?

cmd.exe のエスケープ文字は '\' ではなくて '^' なので。



この投稿にコメントする

削除パスワード

No.28004

Re:コマンドラインからの入力→fopen
投稿者---円零(2006/08/30 13:17:56)


>'\'はひとつずつでよいのでは?
>
>cmd.exe のエスケープ文字は '\' ではなくて '^' なので。

すみません、間違えました。




この投稿にコメントする

削除パスワード

No.28002

Re:コマンドラインからの入力→fopen
投稿者---nano(2006/08/29 21:00:20)


提示されたソースコードには、円零さんからのご指摘の他にも
下記の問題があります。

1)main関数はint型なので、終了時に何らかの値を返さねばならない。
2)実行時にファイル名を与えなかった場合の処理が抜けている。
3)ファイルのオープンに失敗した場合の処理が抜けている。
4)getc関数の戻り値はint型である。char型ではない。



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧