无法将 write/read 以逗号分隔的字符串存入文件

Cannot write/read string separated by coma into a file

我想把一个结构体的一组参数写入一个文件,然后在程序中读取。该结构有一个int类型的变量和一个string类型的变量(这个字符串由space分隔)。我已经成功编写并读取了结构的整数部分,但是当我尝试对字符串执行相同操作时,程序崩溃了。我认为这与我的 fprintf 语句有关,并试图读取由 space.

分隔的字符串
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>

int main(void) {
// creating a FILE variable
FILE *fptr;

// integer variable
int i = 0;
char n[50];

// character variable
struct cliente {
char  nome[50];
int   nif;
};
struct cliente client[0];


// open the file in write mode
fptr = fopen("student", "w");

if (fptr != NULL) {
  printf("File created successfully!\n");
}
else {
  printf("Failed to create the file.\n");
  // exit status for OS that an error occured
  return -1;
}

// get student detail
printf("Enter student name: ");
scanf(" %[^\t\n]c", client[1].nome);
printf("Enter student ID: ");
scanf("%d", &client[1].nif);
// write data in file
fprintf(fptr, "%d %s", client[1].nif, &client[1].nome);

// close connection
fclose(fptr);

// open file for reading
fptr = fopen("student", "r");

// display detail
printf("\Ficheiro:\n");
fscanf(fptr, "%d %s", &i, n);
printf("ID: %d\n", i);
printf(" %s", n);

// close connection
fclose(fptr);

return 0;

}

您声明了一个零长度数组 (struct cliente client[0]),但引用了数组中的第二个元素 (client[1])。这可能会导致崩溃。