私のプログラムでやりたいことは、人(またはそれ以上)を追加した後、(2)、ケース2に行くときに使用するバイト数を確認することです。 私の#include "このheader.h」です:Cのバイナリファイルについて
struct student {
long long int personalnumber;
char name[20];
char gender[20];
char program[20];
int age;
char email[20];
};
は、私がここでやっていることは、1をクリックして、プログラムを起動するプログラムは多分2人の学生(そのためのループ)を追加し、を要求するすべての情報を書き込むことです。 (n)をクリックすると、プログラムはオプションに戻ります。 2をクリックすると、バイナリファイルで使用されているバイト数を出力する必要があります。主な機能は次のとおりです。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "header.h"
int main()
{
int val, age;
long long int personalnumber, size;
char email[20], program[20], gender[20], name[20], n;
do
{
system("cls");
printf("1: Add\n\n");
printf("2. info\n\n");
scanf("%d", &val);
getchar();
switch (val)
{
case 1:
system("cls");
printf("Add a new student to the database\n");
struct student s1;
FILE *myfile;
myfile = fopen("students.dat", "wb");
if (myfile == NULL)
{
printf("Could not open the file!\n");
system("pause");
exit(1);
}
while (1)
{
printf("\nEnter student personalnumber: ");
scanf("%lld", &s1.personalnumber);
getchar();
printf("Enter name of student: ");
fgets(&s1.name, 20, stdin);
printf("Enter the gender of the student: ");
fgets(&s1.gender, 20, stdin);
printf("Enter the Program of the student: ");
fgets(&s1.program, 20, stdin);
printf("Enter the Age of the student: ");
scanf("%d", &s1.age);
getchar();
printf("Enter the students Email: ");
fgets(&s1.email, 20, stdin);
myfile = fopen("students.dat", "wb");
fwrite(&program, sizeof(struct student), 1, myfile);
printf("Do you wish to add more students? Enter y or n");
n = getchar();
getchar();
if (n == 'n')
{
break;
}
}
fclose(myfile);
system("pause");
break;
case 2:
freopen("students.dat", "rb", myfile);
system("cls");
printf("bytes:\n\n");
myfile = fopen("students.dat", "rb");
fseek(myfile, 0, SEEK_END);
size = ftell(myfile);
rewind(myfile);
printf("Size of file is: %lld", size);
system("pause");
break;
}
} while (val != 3);
system("pause");
return 0;
}
あなたはあなたが望むものを教えてくれました。あなたが持っているものを私たちに示しました。しかしあなたの*問題は何ですか?あなたの質問は何ですか*? –
電子メールアドレスの20文字はちょっと辛いですか? – Bathsheba
まあ、問題は私はコードを実行することはできませんこれはファイルと私は本当に問題が何であるか把握することはできませんので、私には新しいです。電子メールの20文字については、後で修正される予定です。今すぐファイルを書き込んで、使用バイト数を読み取る必要があります。 – orgee