fread.cpp
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct _Teacher
{
int age;
char name[128];
}Teacher;
#define BUFFER 1024
int main()
{
FILE * fileHandler = fopen("test.txt", "r");
if (fileHandler == NULL)
{
printf("open file error\n");
return -1;
}
Teacher buf[2];
memset(buf, 0x00, sizeof(buf));
int len = sizeof(buf) / sizeof(Teacher);
fread(buf, sizeof(Teacher), len, fileHandler);
for (int i = 0; i < len; i++)
{
printf("Teacher age = %d,name=%s\n", buf[i].age, buf[i].name);
}
fclose(fileHandler);
return 0;
}
fwrite.cpp
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct _Teacher
{
int age;
char name[128];
}Teacher;
#define BUFFER 1024
int main()
{
FILE * fileHandler = fopen("test.txt", "w+");
if (fileHandler == NULL)
{
printf("open file error\n");
return -1;
}
Teacher buf[3];
memset(buf, 0x00, sizeof(buf));
int len = sizeof(buf) / sizeof(buf[0]);
buf[0].age = 1;
strcpy(buf[0].name, "abc");
buf[1].age = 12;
strcpy(buf[1].name, "abcd");
buf[2].age = 123;
strcpy(buf[2].name, "abcde");
size_t ret = fwrite(buf, sizeof(Teacher),len,fileHandler);
printf("ret = %d\n", ret);//3
fclose(fileHandler);
return 0;
}
fseek
#include <stdio.h>
#define BUFSIZE 6
int main()
{
FILE *handle = fopen("file.hole", "w+");
if (handle == NULL)
{
printf("fopen failed\n");
return -1;
}
fseek(handle, 1024 * 1024 * 80, SEEK_SET);
fwrite("\0", 1,1, handle);
fclose(handle);
return 0;
}
char buffer[BUFSIZE];
memset(buffer, 0, BUFSIZE);
snprintf(buffer, BUFSIZE - 1, "%s", "hehe");
memset(buffer, 0, BUFSIZE);
int maxSize = BUFSIZE - 1;
int strnlen = maxSize > strlen("hehe") ? strlen("hehe") : maxSize;
strncpy(buffer, "hehe", strnlen );