私はC言語を新しくしました。学生データを収集するコードを書いていましたが、問題はほとんどありません。ファイルを読み込んでいません。新しい行に追加されます。私は間違って何をしていますか?Cでファイルを読み込んで追加する
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
int giveChoiceForFileOpenType();
void WriteFile();
void ReadFile();
void ApendFile();
void printChoices();
int openFileFromConsole(FILE *fp1);
void saveStudentGradeInfoTofile(FILE *fp1);
typedef struct student {
char name[50];
char id [20];
int score;
}student;
int main() {
printChoices();
int choice = giveChoiceForFileOpenType();
switch(choice){
case 1: WriteFile();
break;
case 2: ReadFile();
break;
case 3: ApendFile();
break;
default: printf("Error!!!\n");
}
return 0;
}
void WriteFile(){
FILE *fp1 =fopen("E://registry.csv", "w");
openFileFromConsole(fp1);
saveStudentGradeInfoTofile(fp1);
fclose(fp1);
}
void ReadFile(){
FILE *fp2 = fopen("E://registry.csv", "r");
openFileFromConsole(fp2);
fclose(fp2);
}
void ApendFile(){
FILE *fp3 = fopen("E://registry.csv", "a");
openFileFromConsole(fp3);
saveStudentGradeInfoTofile(fp3);
fclose(fp3);
}
void printChoices(){
printf("1.Write\n");
printf("2.Read\n");
printf("3.Append\n");
return;
}
int giveChoiceForFileOpenType(){
int choice;
printf("Select fileopen type:");
scanf("%d",&choice);
return choice;
}
int openFileFromConsole(FILE *fp1){
if(fp1 == NULL )
{
printf("Error!");
return 0;
}
return 1 ;
}
void readingDataFromFile(){
}
void saveStudentGradeInfoTofile(FILE *fp1)
{
int numOfStudent ;
student s[100];
printf ("Get the number of students :");
scanf("%d",&numOfStudent);
for(int i = 0; i < numOfStudent; i++) {
printf("\nEnter ID number:");
scanf(" %s",s[i].id);
printf("Enter name: ");
scanf("%s,",s[i].name);
printf("Enter score: ");
scanf("%d",&s[i].score);
fprintf(fp1,"%s, %s, %d",s[i].id,s[i].name,s[i].score);
printf("\n");
}
}
「ファイルを読み取っていません」???ファイルの内容を印刷するようにコンピュータに指示することは決してありません。それでなぜそれが期待されますか? – ForceBru
@ForceBruおそらく、OPはデバッガや別のツールを使ってファイルを読み込んでいますか? IACは、コードthatsは、批評家のために良いだろう印刷します。私はこのコードがOPの記入を意味するスタブコード(OPの著作者ではない)であると思われます。 – chux