#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//int main()
//{
// //打开文件
// //相对路径
// FILE* pf = fopen("C:\\Users\\24365\\Desktop\\test1.txt", "w");
// if (pf == NULL)
// {
// perror("fopen");
// return 1;
// }
// //写文件
//
// //关闭文件
// fclose(pf);
// pf == NULL;
//
// return 0;
//}
////fputc 写文件
//int main()
//{
// //打开文件
// FILE* pf = fopen("test.txt", "w");
// if (pf == NULL)
// {
// perror("fopen");
// return 1;
// }
// //写文件
// //把26个字母写到文件中
// int i = 0;
// for (i = 0; i < 26; i++)
// {
// fputc('a' + i, pf);
// }
// //关闭文件
// fclose(pf);
// pf = NULL;
// return 0;
//}
////fgetc - 读文件操作
//
//int main()
//{
// //打开文件
// FILE* pf = fopen("test.txt", "r");
// if (pf == NULL)
// {
// perror("fopen");
// return 1;
// }
// //读文件
// int ch = 0;
// int i = 0;
// for (i = 0; i < 26; i++)
// {
// ch = fgetc(pf);
// printf("%c ", ch);
// }
// //关闭文件
// fclose(pf);
// pf = NULL;
//
// return 0;
//}
////fputs - 写一行数据
//
//
//int main()
//{
// //打开文件
// FILE* pf = fopen("test.txt", "w");
// if (pf == NULL)
// {
// perror("fopen");
// return 1;
// }
// //写文件
// //写一行数组 hello bit
// fputs("hello world\n", pf);
// fputs("hello bit\n", pf);
// //关闭文件
// fclose(pf);
// pf = NULL;
// return 0;
//}
////fgets - 读一行数据
//
//int main()
//{
// //打开文件
// FILE* pf = fopen("test.txt", "r");
// if (pf == NULL)
// {
// perror("fopen");
// return 1;
// }
// //读取数据
// char arr[20];//从pf拿出来的数据放在arr中
// fgets(arr, 5, pf); // 会提前留一个\0的位置
// printf("%s\n", arr);
// //关闭文件
// fclose(pf);
// pf = NULL;
// return 0;
//}
//格式化的读写
//fprintf
//fscanf
//struct S
//{
// int n;
// float f;
// char arr[20];
//};
//
////使用fprintf 来格式化写数据
//int main()
//{
// struct S s = { 100, 3.14f, "zhangsan" };
// //打开文件
// FILE* pf = fopen("test.txt", "w");
// if (pf == NULL)
// {
// perror("fopen");
// return 1;
// }
// //写文件
// fprintf(pf, "%d %f %s\n", s.n, s.f, s.arr);
// //关闭文件
// fclose(pf);
// pf = NULL;
// return 0;
//}
//使用fscanf来读取数据
struct S
{
int n;
float f;
char arr[20];
};
int main()
{
struct S s = { 0 };
//打开文件
FILE* pf = fopen("test.txt", "r");
if (pf == NULL)
{
perror("fopen");
return 1;
}
//读文件
fscanf(pf, "%d %f %s", &(s.n), &(s.f), s.arr); // 要先在文件中写入数据,再读取数据,把pf中的数据放到s中去
printf("%d %f %s\n", s.n, s.f, s.arr);//打印结构体s中的数据
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}
////
////stdin FILE* - 基本输入流
////stdout FILE* - 基本输出流
////stderr FILE* - 基本错误流
//
//int main()
//{
// int ch = 0;
// //ch = fgetc(stdin);
// //printf("%c\n", ch);
//
// //fputc('a', stdout);
// //fputc('b', stdout);
// //fputc('c', stdout);
// //fputc('d', stdout);
//
//
// struct S
// {
// int n;
// float f;
// char arr[20];
// };
//
// //struct S s = { 1000, 3.666f, "hehe" };
// //fprintf(stdout, "%d %f %s", s.n, s.f, s.arr);
//
// struct S s = { 0 };
// fscanf(stdin, "%d %f %s", &(s.n), &(s.f), s.arr);
// fprintf(stdout, "%d %f %s", s.n, s.f, s.arr);
//
// return 0;
//}
////sprintf和sscanf的使用
//
// struct S
// {
// int n;
// float f;
// char arr[20];
// };
//
// int main()
// {
// struct S s = { 200, 3.14, "wangwu" };
// //打一个结构体转换为字符串
// char arr[200];
// sprintf(arr, "%d %f %s\n", s.n, s.f, s.arr);
// //printf("字符串的数据:%s\n", arr);
//
// //把一个字符串转换成对应的格式化数据
// //sscanf(arr, "%d %f %s", &(s.n), &(s.f), &s.arr);
// //printf("格式化的数据:%d %f %s\n", s.n, s.f, s.arr);
//
// struct S tmp = { 0 };
// sscanf(arr, "%d %f %s", &(tmp.n), &(tmp.f), &tmp.arr);
// printf("格式化的数据:%d %f %s\n", tmp.n, tmp.f, tmp.arr);
//
// return 0;
// }
//int main()
//{
// //打开文件
// FILE* pf = fopen("C:\\Users\\24365\\Desktop\\test1.txt", "w"); // w - 只写 r - 只读
// if (pf == NULL)
// {
// perror("fopen");
// return 1;
// }
// //读文件
// //关闭文件
// fclose(pf);
// pf = NULL;
// return 0;
//}
C语言文件操作笔记(初始版)
最新推荐文章于 2026-06-22 17:43:33 发布
本文详细介绍了C语言中文件操作函数如fopen,fclose,fwrite,fread,fprintf,fscanf以及格式化输入输出的使用方法,包括写入文本、读取数据和结构体的格式化操作。
&spm=1001.2101.3001.5002&articleId=133631359&d=1&t=3&u=1135e1f6338646b2976688ba14e2b0a0)
7637

被折叠的 条评论
为什么被折叠?



