1、结构体
结构体统一取别名,兼容多平台编译器
/**
* 结构体
* 统一别名Student
*/
typedef struct {
char name[10];
int age;
char sex;
} Student;
int main() {
Student student = {"daxiaa",29,'M'};
printf(" value is %s,%d,%s",student.name,student.age,student.sex);
return 0;
}
2、结构体指针
注意结构体指针采用->访问属性
Student * student2 = {"daxiaa",29,'M'};
printf(" value is %s,%d,%s",student2->name,student2->age,student2->sex);
3、文件操作
- 读文件
int main() {
// fopen打开文件的意思(参数1:文件路径 文件源, 参数2:模式 r(读) w(写) rb(作为二进制文件读) rw(作为二进制文件写) 返回值 FILE 结构体)
// FILE * fopen (const char *, const char *);
char *fileNameStr = "D:\\Temp\\daxiaa.txt";
//读文件
readFile(fileNameStr);
return 0;
}
void readFile(char *fileNameStr) {
// 既然是使用了r,你要提前准备好文件
FILE *file = fopen(fileNameStr, "r");
if (!file) {
printf("文件打开失败,请你个货检测:路径为%s路径的文件,看看有什么问题\n", fileNameStr);
exit(0); // 退出程序
}
// 先定义缓存区域 (容器)
char buffer[10];
// 1.缓冲区buffer, 2:长度10, 3:文件指针变量
while (fgets(buffer, 10, file)) {
printf("%s", buffer);
}
// 关闭文件
fclose(file);
}
i am daxiaa
- 写文件
/**
* 写文件
* @param fileNameStr
*/
void wirteFile(char *fileNameStr) {
// 既然是使用了w,他会自动生成文件 0kb
FILE * file = fopen(fileNameStr, "w");
if (!file) {
printf("文件打开失败,请你个货检测:路径为%s路径的文件,看看有什么问题\n", fileNameStr);
exit(0); // 退出程序
}
fputs("Derry Success run...", file);
// 关闭文件
fclose(file);
}
- 制复制文件
void copy() {
FILE *r_file = fopen("D:\\Temp\\daxiaa.txt", "rb");
FILE *w_file = fopen("D:\\Temp\\daxiaaFileCopy.txt", "wb");
char buffer[10]; // 514 * 4 = 2048
// fread:参数1:容器buffer, 参数2:每次偏移多少 int, 参数3:容器大小 写个2048,等下文件就报废了
// sizeof(buffer) / sizeof(int) 等价与 514
while (fread(buffer, sizeof(char), 10, r_file)){
fwrite(buffer, sizeof(char), 10, w_file);
}
// 关闭文件
fclose(r_file);
fclose(w_file);
}
网友评论