C语言---文件操作

文件操作:
fopen:open a file(返回值:FILE *fopen)
(const char *,打开方式)
fclose:close a file

fgetc(读一个字符)、fputc(写一个字符):
fgets(把一个文件里面的字符的前n个给另外一个文件)、fputs(写一个 字符串到屏幕上):
rewind:把文件的指针附到文件的开头
fscanf:比scanf多一个FILE * stream
fprintf:比printf多一个FILE * stream
fread:返回值代表正确读取的次数
fseek:根据文件指针的位置和偏移量来定位文件指针
int fseek ( FILE * stream, long int offset, int origin );
0:开头 1:当前位置 2:末尾
ftel:返回相对于起始位置的偏移量
feof:当文件读取结束的时候,判断是文件末尾,还是读取失败结束
//字符串–fread,fwrite,fgets
//数据输入和输出:二进制:fread,fwrite
文件:
_stat:头文件 #include <sys\stat.h>
不用管指针 st_size 大小
sprintf:输出到字符串里面
sscanf:输入到字符串里面

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

//fputc\fgetc
//int main(){
//	char c;
//	FILE *fpr = NULL;
//	FILE *fpw = NULL;
//	fpr = fopen("C:\\Users\\86155\\Desktop\\1.txt","r");
//	fpw = fopen("C:\\Users\\86155\\Desktop\\2.txt", "w");
//	if (fpr == NULL)
//	{
//		printf("open fail\n");
//	}
//	if (fpw == NULL)
//	{
//		printf("open fail\n");
//	}
//	while ((c = fgetc(fpr)) != EOF)//读字符,知道得到的字符不等于EOF
//	{
//		putchar(c);
//		fputc(c, fpw);
//	}
//	fclose(fpr);//每一个fopen对应一个fclose
//	fclose(fpw);
//	fpr = NULL;//每一个指针都要最后附空
//	fpw = NULL;
//	system("pause");
//	return 0;
//}

//fputs\fgets
//rewind:把文件的指针附到文件的开头
//int main(){
//	FILE *fpr = fopen("C:\\Users\\86155\\Desktop\\1.txt", "r");
//	FILE *fpw = fopen("C:\\Users\\86155\\Desktop\\2.txt", "w");//a是追加的意思,相当于重复写  nihao->nihaonihao
//	char *buf = NULL;
//	if (fpr == NULL)
//	{
//		printf("null\n");
//	}
//	fgets(buf, 5, fpr); //'\0'
//	puts(buf);  //1234
//	fputs("nihao", fpw);
//	fclose(fpr);
//	fclose(fpw);
//	fpr = NULL;
//	system("pause");
//	return 0;
//}

//fscanf\fprintf
//int main(){
//	int a, b, c;
//	FILE *fpr = fopen("C:\\Users\\86155\\Desktop\\1.txt", "r");	
//	FILE *fpw = fopen("C:\\Users\\86155\\Desktop\\2.txt", "w");	 
//	char *buf = NULL;	
//	if (fpr == NULL)	
//	{	
//		printf("null\n");	
//	}	
//	if (fpw == NULL)	
//	{	
//		printf("null\n");	
//	}	
//	fscanf(fpr,"%2d%3d%1d", &a, &b, &c);	
//	fprintf(fpw,"a=%d,b=%d,c=%d\n", a, b, c);	
//	fclose(fpr);	
//	fclose(fpw);	
//	fpr = NULL;	
//	system("pause");
//	return 0;
//}

//int main(){
//	int a, b,n;
//	char c;
//	FILE *fpr = fopen("C:\\Users\\86155\\Desktop\\1.txt", "r");
//	FILE *fpw = fopen("C:\\Users\\86155\\Desktop\\2.txt", "w");
//	char *buf = NULL;
//	if (fpr == NULL)
//	{
//		printf("null\n");
//	}
//	if (fpw == NULL)
//	{
//		printf("null\n");
//	}
//	//n = fread(buf, 3, 5, fpr);//从当前的fpr里面读取了两次,每次读取三个放到buf里面
//	//puts(buf);
//	//fseek(fpr, 2, 0);//读取距离0位置正2个位置的字符
//	//fseek(fpr, -2, 2);//9
//	//0:开头  1:当前位置  2:末尾
//	fseek(fpr, 0, 2);
//	c = fgetc(fpr);
//	printf("%c\n", c);
//	n = ftell(fpr);//读出距离开头的偏移量
//	rewind(fpr);
//	printf("n=%d\n", n);
//	buf = (char *)malloc(sizeof(char)*n);
//	fread(buf, n, 1, fpr);
//	fwrite(buf, n, 1, fpw);
//	fclose(fpr);
//	fclose(fpw);
//	fpr = NULL;
//	system("pause");
//	return 0;
//}

//typedef struct data
//{
//	char name[20];
//	char age[3];
//	char sex[3];
//}Data;
//
//
//int main()
//{
//	Data t = { "zhangsan", "5", "m" };
//	//FILE *fpw = fopen("C:\\Users\\86155\\Desktop\\2.txt", "rb");
//	FILE *fpw = fopen("C:\\Users\\86155\\Desktop\\2.txt", "wb");
//	fprintf(fpw, "%s %d %c", t.name, t.age, t.sex);
//	fclose(fpw);
//	fpw = NULL;
//	return 0;
//}

猜你喜欢

转载自blog.csdn.net/qq_44783220/article/details/92415719