C 是否可以使用数组成员构造此文件

C 是否可以使用数组成员构造此文件,c,C,我有没有办法把它构造成文件,然后用fwrite和fread读取 我尝试了几种方法,但什么也没发生 struct Register{ user[20][20]; pass[20][20]; } x[10]; 以下建议的代码可能是您想要的: #include <stdio.h> #include <stdlib.h> // to avoid using 'magic' numbers #define NUM_STRUCTS 10 #define MAX_USER

我有没有办法把它构造成文件,然后用fwrite和fread读取

我尝试了几种方法,但什么也没发生

 struct Register{
 user[20][20];
 pass[20][20];
 } x[10];

以下建议的代码可能是您想要的:

#include <stdio.h>
#include <stdlib.h>

// to avoid using 'magic' numbers
#define NUM_STRUCTS  10
#define MAX_USERS    20
#define MAX_USER_LEN 20
#define MAX_PASSS    20
#define MAX_PASS_LEN 20

struct Register
{
     char user[ MAX_USERS ][ MAX_USER_LEN ];
     char pass[ MAX_PASSS ][ MAX_PASS_LEN ];
}; 

int main( void )
{
    struct Register x[ NUM_STRUCTS ];

    // initialize structs here, then

    FILE *fp = fopen( "fileContainingStructs", "w" );
    if( !fp )
    {
        perror( "fopen failed" );
        exit( EXIT_FAILURE );
    }

    // implied else, fopen successful

    size_t numStructs =
        fwrite( x, sizeof( struct Register ), NUM_STRUCTS, fp );
    if( numStructs != NUM_STRUCTS )
    {
        perror( "fwrite failed" );
        fclose( fp );
        exit( EXIT_FAILURE );
    }

    // implied else, fwrite successful

    fclose( fp );
}

某些类型的DEC似乎丢失了…您可以从编写有效的结构定义开始。您提供的一个无法为其成员声明类型。C几乎没有内省功能,您需要编写自定义函数来手动编码和解码数据。您不需要任何内省功能来使用fwrite编写任何类型的对象,@faissaloo.你能给我一些数组成员的例子吗?你有解决方案吗,你如何重置文件重置文件可以通过ftruncate完成,或者通过fopen以w模式打开文件。