08/01/15 11:17:55
#include <stdio.h>
#include <malloc.h>
#define buffer_size 10
int main(int argc ,char *argv[])
{FILE *p;
char buffer[buffer_size];
if(argv[1]==0){
printf("ファイル名を入力してください\n");
scanf("%s",&argv[1]);
}else if(argv[1]==0){
printf("プログラムを終了します。");return 0;
}
p=(FILE *)malloc(sizeof(FILE));
if(p == 0){
perror("領域確保に失敗");return 0;
}
p=fopen(argv[1],"r");
if(p){
while(fgets(buffer,buffer_size,p)){
printf("%s",buffer); }
}
if(!p){
printf("文字列を書き込んでください\n");
scanf("%s",buffer);
p=fopen(argv[1],"w");
if(fprintf(p,buffer)==0){
perror("終了します。\n");return 0;}
};
fclose(p);free(p);return 0;
}
うまい下手はさておいてこのプログラムの間違いを教えてください。コマンド未入力の場合、既存ファイルがあるにも関らず入力を促す。セグメンテーション、アボートエラーがでます。よろしくお願いします。