以下のプログラムなのですが、引数を与えると下のようなエラーになります。
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char** argv) {
FILE *in ,*out;
unsigned char ch;
if(argc != 3)
{
printf("入力エラーです。\n");
exit(1);
}
if((in = fopen(argv[1],"rb")) == NULL)
{
printf("入力ファイルが開けません。\n");
exit(1);
}
if((out = fopen(argv[2],"rb")) == NULL)
{
printf("出力ファイルが開けません。\n");
exit(1);
}
while(!feof(in))
{
ch = fgetc(in);
if(!feof(in))
fputc(~ch,out);
}
fclose(in);
fclose(out);
return 0 ;
}
tyobi@tyobi-laptop:~$ gcc test.c diary copy
diary: file not recognized: File format not recognized
collect2: ld はステータス 1 で終了しました
どうしたらよいのでしょうか?
No.3ベストアンサー
- 回答日時:
tyobi@tyobi-laptop:~$ ./a.out diary copy
が、正しいコマンドのうちかたですが、
その結果が、どのようになることを期待していますか。
copyという名のファイルができていませんか?
それが、できていればOKだと思いますが。
このプログラムが、正しく動作したとき、
"正常におわりました"・・というようなメッセージはださずに、
そのまま、おわるような作りになっていますよ。
回答ありがとうございます。
実行ファイルa.outの直後に引数を置くのは知りませんでした。
たしかに、失敗したか成功したかを知るためにメッセージを
最後に残すのは大切ですね。
No.2
- 回答日時:
a.outの実行には
./a.out
のように先頭に ./ が必要かもしれません
No.1
- 回答日時:
(1)gcc test.c と打って下さい。
エラーがなければ、a.outという実行形式のファイルが出来ます。
そしたら
(2)a.out diary copy と打って下さい。
もし、プログラムが正しいなら、あなたの期待した結果になります。
(1)(2)のどちらかでエラーがでたら、再度質問し直して下さい。
回答ありがとうございます。
1は出来ました。実行形式のファイルは作成されます。
a.out だとプログラムどおりに入力エラーですとなりました。
tyobi@tyobi-laptop:~$ ./a.out
入力エラーです。
そしてa.out diary copyだと、何もおこらずそのまま
tyobi@tyobi-laptop:~$ ./a.out diary copy
tyobi@tyobi-laptop:~$
となりました。やはり上手くいきません。
お探しの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# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# C言語のファイル入力が分かりません 2 2022/05/22 06:35
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パワーポイントに挿入したエク...
-
パソコン起動時
-
VB6のプロジェクトロードエラー...
-
エクセルVBA 開いているブック...
-
80070052エラー
-
バッチファイルでXCOPYコマンド...
-
ShellExecute でショートカット...
-
vb.netで作成したexeファイルが...
-
IISでローカル内からhttp://loc...
-
C++言語エラー
-
FileSystemObject CopyFile ...
-
ASP(vbs)でのBCPの実行について
-
ファイルは既に開かれています(...
-
VBSのsendkeysで日本語を出力し...
-
win10で1つのフォルダ内に保存...
-
フォルダ・ファイルの順番を自...
-
フォルダの中身を全部消したい。
-
Excelのハイパーリンクのアドレ...
-
フォルダの中のファイルを任意...
-
windows media playerの動画をJ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワーポイントに挿入したエク...
-
VB6のプロジェクトロードエラー...
-
エクセルVBA 開いているブック...
-
バッチファイルでXCOPYコマンド...
-
IISでローカル内からhttp://loc...
-
ファイルは既に開かれています(...
-
Windowsタスクスケジューラから...
-
ShellExecute でショートカット...
-
データベースアクセスエラー(...
-
ネットワーク上のファイルのコピー
-
FileSystemObject CopyFile ...
-
ASP(vbs)でのBCPの実行について
-
C++言語エラー
-
VBSのsendkeysで日本語を出力し...
-
Outlookの.pstファイルを保存し...
-
"巡回冗長検査 (CRC) エラー"CD...
-
エラーがでてしまいます
-
Outlookがエラーで動かない
-
EXCELでCTRL+Cでコピーをしたと...
-
80070052エラー
おすすめ情報