C 是否可以使用数组成员构造此文件
我有没有办法把它构造成文件,然后用fwrite和fread读取 我尝试了几种方法,但什么也没发生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
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模式打开文件。