#include #include #include #include #define MAX 3 void InputRecord(int *ptrRank, int *ptrScore, char *ptrNickName); void InputRecord(int *ptrRank, int *ptrScore, char *ptrNickName) { printf("Please enter a rank: "); scanf("%d", ptrRank); printf("Please enter a score: "); scanf("%d", ptrScore); printf("Please enter a nick name: "); scanf("%s", ptrNickName); } void PrintRecord(int rank, int score, char *nick); void PrintRecord(int rank, int score, char *nick) { printf("%4d%5d%22s\n", rank, score, nick); } void PrintAllRecords(int rank[], int score[], char nick[][21]); void PrintAllRecords(int rank[], int score[], char nick[][21]) { int i; for(i=0; i < MAX; i++) { PrintRecord(rank[i], score[i], nick[i]); } } int SaveAll(int rank[], int score[], char nick[][21]); int SaveAll(int rank[], int score[], char nick[][21]) { FILE *ptrOutFile; int i; ptrOutFile = fopen("scores.dat", "w"); if (ptrOutFile == NULL) return -1; for(i=0; i < MAX; i++) { fprintf(ptrOutFile, "%d %d %s\n", rank[i], score[i], nick[i]); } fclose(ptrOutFile); return i; } int LoadAll(int rank[], int score[], char nick[][21]); int LoadAll(int rank[], int score[], char nick[][21]) { FILE * ptrInFile; int i; ptrInFile = fopen("scores.dat", "r"); if (ptrInFile == NULL) return -1; i = 0; while (!feof(ptrInFile)) { fscanf(ptrInFile, "%d%d%s", &rank[i], &score[i], nick[i]); i++; } fclose(ptrInFile); return i; } int main() { int rank[MAX]; int score[MAX]; char nick[MAX][21]; // stores MAX nick names not exceeding 20 chars each int recordCount =0; /* int i; for(i=0; i < MAX; i++) { InputRecord(&rank[i], &score[i], nick[i]); } printf("\n-------- output --------\n"); PrintAllRecords(rank, score, nick); SaveAll(rank, score, nick); */ recordCount = LoadAll(rank, score, nick); PrintAllRecords(rank, score, nick); printf("Modify record number 2:\n"); InputRecord(&rank[1], &score[1], nick[1]); SaveAll(rank, score, nick); return 0; }