文件操作:
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;
//}