C++中的FILE操作---用C来实现【1】

C++中FILE实现操作---用C来实现

/*学习文件的各种操作--用于保存进程中的各种操作*/
/*****************************************************/
//学习文件: 打开 关闭 读 写 四种操作 循环输入
//流程总结: 打开--》读取--》关闭
// 打开--》写入--》关闭
//实现过程: 内存数据 复制到 文件中
// 文件数据 复制到 内存中
//学习到的: sizeof(a),数组的大小 初始多大,就是多大
// strlen(a),输入数组a中多少,就是多大
// gets(a)//专门有来输入字符串用,从控制台获取
//输入方式 :一 直接申请数组,字符串; 二 直接申请数组,初始化, 字符串拷贝;
// 三 gets(申请的数组存放),控制台输入 四 while循环输入

/*****************************************************/

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
//为什么不能用c:\12.text 即单斜杠 下面测试语句
//char a[] = "c:\\12.text";
//printf("%s", a);//打印一看是回车符号
/////////////////////////////////////////////
//所以一定在c/c++中用双斜杠
char buffer[100] = { 0 }, a[100] = { 0 };//最好初始化一下
/*char a[51] = { 0 };//方法 1
strcpy(a,"我是个天才,I love NBA! I also like basketball");*/
//char a[51] = "\t\t我是个天才,I love NBA!\n\t\tI also like basketball";//字符输入 方法二
//中文在内存数组中是负数
FILE *pf=fopen("E:\\new.txt", "w");//打开文件,如果没有就在e盘创建new.txt文件,执行写入操作
if (!pf){//pf返回空值
puts("文件写入失败!");//无法在本地创建文件的原因
system("pause");//eg:"X:\\new.txt", "w" 就会失败
return -1;// 返回任意整数值都行
}
if (pf){//返回值不是空地址    即存在文件new.txt
while (a[0] != '#'){//没有输入# 一直循环输入 
//为什么是a[0]为# 因为数组数据倒着输入,查看数组数据即可
gets(a);//gets获得字符串进行输入 但这是去掉回车的纯字符串输入
strcat(a, "\n");//strcat字符串末尾添加数据 追加一个换行符
//fwrite(a, 1, sizeof(a), pf);//方法二 的输入形式 将数组a的内容 每次按1个字节写入,一共写入数组大小的次数,放到pf所指向文件
fwrite(a, 1, strlen(a), pf);
}

}
fclose(pf);//关闭文件才能执行下面的读取打开
if (!pf){//pf返回空值
puts("文件不存在,打开失败!");
system("pause");
}
else{
pf = fopen("E:\\new.txt", "r");
fread(buffer, 1, strlen(a), pf);//从文件将数据读取到内存的缓冲区,即已经定义好的数组来存储
//每次读一个字节 总共读51块
printf("%s", buffer);
fclose(pf);
}

//FILE *文件指针类型 FILE *p定义一个文件句柄 后面是执行操作
return 0;
}

 

posted @ 2017-08-03 18:30  心沉大海-汇聚成一  阅读(629)  评论(0)    收藏  举报