C语言文件操作笔记(初始版)

#define  _CRT_SECURE_NO_WARNINGS 1
#include 

//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语言之旅,c语言,笔记,c++)