ファイル名(文字列)を取り、ファイル名(文字列)の配列を持たせて、ファイル名が渡されたかどうかを確認する関数を持っています配列内に追加し、そうでない場合はそれを追加します。ここに私がこれまでに得たものがあります。Cの文字列の配列の文字列をチェックする
bool read_file(char * filename, bool warnings){
//Check to see if filename is in array files
static char * files[MAXFILES];
static int counter = 0;
for(int i=0;i<counter;i++){
if(strcmp(filename,files[i]) == 0){
fprintf(stdout, "Error\n");
return 0;
}
else{
files[counter]=filename;
counter++;
}
}
FILE * fp = fopen(filename,"r");
if(fp == NULL){
if(warnings){
fprintf(stderr, "Can't open the file %s\n",filename);
return 0;
}
else{
return 0;
}
}
else{
fclose(fp);
fp = NULL;
return 1;
}
}
何らかの理由で、ファイル[]にファイル名を追加することはありません。
'for'ループは入力されません。' counter'を '0'に初期化し、' for'ループで 'i
Naveen
なぜ 'counter'と' files'は静的でなければなりませんか? – Lundin