Я новичок в C. Я пытаюсь создать программу C как простую систему билетов для практики.помогите написать структуру в двоичный файл
Я хочу написать структуру в двоичный файл, а затем прочитать его. но он ничего не записывает в двоичный файл.
То, что я получил только
Файл успешно закрыт.
Файл успешно закрыт.
Бинарный файл (ticket.bin) по-прежнему пуст.
Если кто-нибудь может ввести пример, чтобы помочь мне понять, как писать структуру в двоичный файл и читать его.
define STATIONNUM 10//Maximun number of station.
define rate1 160
define rate2 190
define rate3 230
struct Ticket{
int code;//code of the list
char station[20];//destination name.
int price;//transportation fee.
};
int main(){
FILE *fp;
int c;//for open close judgement return value.
int i;//use at for loop.
struct Ticket list[STATIONNUM]={
{1, "NewYork", rate1},
{2, "London", rate1},
{3, "Paris", rate1},
{4, "Tokyo", rate1},
{5, "HongKong ", rate2},
{6, "Sydney", rate2},
{7, "Milan", rate2},
{8, "Berlin", rate2},
{9, "Vancouver", rate3},
{10, "Afghanistan", rate3},
};
//open a binary file to write.
fp = fopen("ticket.bin", "wb");
if(! fp){
printf("open file fail");
}
//write data into binary file.
if (fwrite(list, sizeof(list[0]), STATIONNUM, fp) != STATIONNUM);
//close it.
c = fclose(fp);
//judge if it's closed.
if(c == -1){
printf("File close failed.\n");
}else if(c == 0){
printf("File successfully closed.\n");
}
//open binary file to read.
fp = fopen("ticket.bin", "rb");
if(! fp){
printf("open file fail");
}
fread(list, sizeof(struct Ticket), STATIONNUM, fp);
//close it.
c = fclose(fp);
//judge if it's closed.
if(c == -1){
printf("File close failed.\n");
}else if(c == 0){
printf("File successfully closed.\n");
}
}
Является ли это 'C#' или 'C++'? –
Похож на C++. –
Выглядит больше как C (fopen/printf), хотя все это можно использовать в C++. – Nikhil