ファイルのコピー
Posted: 2010年10月10日(日) 19:26
もともとあるファイルの内容を違うファイルにコピーするプログラムで watch を入力するとそのファイルの内容をコマンドに表示させるプログラムなのですが、なぜかうまくいきません。コマンドに永遠に????が表示されてしまいます。
どうしてでしょうか?ご教授願います。以下がソースです。何故かファイルもコピーされてません。何が原因なのでしょうか。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, char *argv[/url])
{
FILE *to, *from;
char ch,watch;
if (argc < 3 || argc > 4){
puts("エラーです。正しい使用法で使用してください。\n"
"<プログラム名> <元のファイル名> <コピー先のファイル名> <watch>");
exit(1);
}
if ((from = fopen(argv[1],"r")) == NULL){
puts("error! I can't this program");
exit(1);
}
if ((to = fopen(argv[2],"w")) == NULL){
puts("error!");
exit(1);
}
if (argc == 4 || !(strcmp(argv[3],"watch")))
watch = 1;
else
watch = 0;
while ((ch = fgetc(from)) == EOF){
fputc(ch,to);
if(watch)
putchar(ch);
}
fclose(to);
fclose(from);
return 0;
}
どうしてでしょうか?ご教授願います。以下がソースです。何故かファイルもコピーされてません。何が原因なのでしょうか。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, char *argv[/url])
{
FILE *to, *from;
char ch,watch;
if (argc < 3 || argc > 4){
puts("エラーです。正しい使用法で使用してください。\n"
"<プログラム名> <元のファイル名> <コピー先のファイル名> <watch>");
exit(1);
}
if ((from = fopen(argv[1],"r")) == NULL){
puts("error! I can't this program");
exit(1);
}
if ((to = fopen(argv[2],"w")) == NULL){
puts("error!");
exit(1);
}
if (argc == 4 || !(strcmp(argv[3],"watch")))
watch = 1;
else
watch = 0;
while ((ch = fgetc(from)) == EOF){
fputc(ch,to);
if(watch)
putchar(ch);
}
fclose(to);
fclose(from);
return 0;
}