fscanf
(またはテキスト ファイルの s を処理するその他の関数stdin
) を使用して、同じ長さの整数の特定のグループをスキャンし、それらを同じ配列に配置すると同時に、より短い整数を無視するにはどうすればよいですか?必要以上に
txt ファイルは次のようになります。
63001234 1 1 -1 - - 0 1 1 1 - - 0
63001230 1 1 1 1 1 1 1 1 1 1 1 1
63001432 -1 -1 - - - - - - - - - -
63000176 - - 1 0 0 1 0 0 1 1 1 1
63... の数値を 1 つの int 配列に格納し、'1'、'-1'、'0'、'-' を別の char 配列に格納する必要があります。
これで、スキャンとテスト機能が 1 つになりました
int main() {
printf("insert the name of the txt file you want to scan from: ");
char fileopen [100];
scanf("%s", fileopen);
int Students [250];
char Grades [250] [12];
FILE *fop = fopen(fileopen ,"r");
if(fop == NULL){
printf("Error");
EXIT_FAILURE;
}
int counter = 0;
//read file
while(1){
if(fscanf(fop,"%d",&Students[counter]) == EOF){
break;
}
for(int j = 0; j < 12; j++){
fscanf(fop," %c",&Grades[counter][j]);
}
fscanf(fop,"\n");
counter++;
}
counter = 0;
//test what has been written in the arrays
while(counter <= strlen(Students)){
printf("%d", Students[counter]);
for(int j = 0; j < 12; j++){
printf(" %c", Grades[counter][j]);
}
counter++;
printf("\n");
}
}