cuốn sách gpt4 ai đã làm

c - 写入 - 读取二进制文件中的结构

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 06:55:00 30 4
mua khóa gpt4 Nike

Tôi chỉ muốn viết cấu trúc Điểm trong tệp nhị phân và đọc cấu trúc bằng văn bản.

Ai đó có thể giải thích tại sao mã này không hoạt động?

#include
#xác định N 100

typedef struct Điểm điểm;
điểm cấu trúc {
phao x;
thả nổi y;
};

void khởi tạoPoint(Điểm * p);
void showPoint(Điểm * p);
void khởi tạoFileName(char * fileName);
int writePointToFile(char *tên file, Point * p);
int readPointFromFile(char * fileName, Point * p);

int main()
{
Điểm p1 = {0};
Điểm p2 = {0};
char fileName[N] = {0};
int exitStatus = 0;

khởi tạoPoint(&p1);
showPoint(&p1);

khởi tạoFileName(fileName);

printf("Bạn đã nhập vào : %s\n", fileName);

printf("Ghi return : %d\n", writePointToFile(fileName, &p1));

printf("Đọc trả về : %d\n", readPointFromFile(fileName, &p2));

showPoint(&p2);

trả về trạng thái thoát;
}

void khởi tạoPoint(Điểm * p){
printf("Entrez une value pour x : ");
scanf("%f", &p->x);
printf("Entrez une value for y : ");
scanf("%f", &p->y);
}
void showPoint(Điểm * p){
printf("Le point est aux coordonnées (x,y) = (%.2lf, %.2lf).\n", p->x, p->y);
}
void khởi tạoFileName(char * fileName){
printf("Entrez une value pour le nom de fichier : ");
scanf("%s", fileName);
}
int writePointToFile(char *tên tệp, Điểm * p)
{
TẬP TIN* f2 = NULL;

f2 = fopen(tên file, "wb");

if(f2 != NULL){
if(fwrite(&p, sizeof(struct Point), 1, f2) != 1){
printf("Không thể ghi vào tập tin.");
fclose(f2);
return -1;
}
}
khác
{
printf("Không thể mở tập tin.");
return -1;
}
fclose(f2);
return 0;
}
int readPointFromFile(char * fileName, Point * p){

TẬP TIN* f = NULL;

f = fopen(fileName, "rb");

if(f != NULL){
if(fread(&p, sizeof(struct Point), 1, f) != 1){
printf("Không thể đọc được từ tập tin.");
fclose(f);
return -1;
}
}
khác{
printf("Không thể mở tập tin.");
return -1;
}
fclose(f);
return 0;
}

Đây là nhật ký của tôi:

/home/sviktor/CLionProjects/untitled/cmake-build-debug/untitled Entrez une valeur pour x : 2.33 Entrez une valeur pour y : 1.34 Le point aux coordonnées (x,y) = (2.33, 1.34). Tên cá nhân : test123.bin Vous avez enré : test123.bin Viết trả về : 0 Đọc trả về : 0 Le point aux coordonnées (x,y) = (0,00, 0,00).

Quá trình kết thúc với mã thoát 0

Tôi đang sử dụng Fedora và clion IDE,

Biên tập viên Bless nói rằng tệp test123.bin của tôi chứa cái này C4 2E 18 F1 FC 7F 00 00 Nhưng chức năng đọc không hoạt động (nó cho điểm = (0,0))

30 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress