C语言指针-----指针与文件
2016-01-02 18:39
423 查看
文件在C语言里被定义成了结构体,这个结构体包含了文件的一些信息
关于FILE这个结构体定义在stdio.h文件中,这个结构体定义如下:
在C语言中,文件的操作都是通过库来完成的,最基本的就是打开文件和关闭文件函数。
常见的读写函数:
1、字符读写函数 :
2、字符串读写函数:
3、数据块读写函数:
4、格式化读写函数:
代码二:
FILE *fptr;
关于FILE这个结构体定义在stdio.h文件中,这个结构体定义如下:
struct _iobuf { char *_ptr; //文件输入的下一个位置 int _cnt; //当前缓冲区的相对位置 char *_base; //文件的起始位置 int _flag; //文件标志 int _file; //文件的有效性验证 int _charbuf; //检查缓冲区状况,如果无缓冲区则不读取 int _bufsiz; //文件的大小 char *_tmpfname; //临时文件名 }; typedef struct _iobuf FILE;
在C语言中,文件的操作都是通过库来完成的,最基本的就是打开文件和关闭文件函数。
FILE* fopen(const char*, const char*);//fopen函数原型 int fclose(FILE*);//fclose函数原型
┌──┬────┬───────┬────────┐ │type│读写性 │文本/2进制文件│建新/打开旧文件 │ ├──┼────┼───────┼────────┤ │r │读 │文本 │打开旧的文件 │ │w │写 │文本 │建新文件 │ │a │添加 │文本 │有就打开无则建新│ │r+ │读/写 │不限制 │打开 │ │w+ │读/写 │不限制 │建新文件 │ │a+ │读/添加 │不限制 │有就打开无则建新│ └──┴────┴───────┴────────┘
常见的读写函数:
1、字符读写函数 :
fgetc和fputc
2、字符串读写函数:
fgets和fputs
3、数据块读写函数:
fread和fwrite
4、格式化读写函数:
fscanf和fprinf
#include<stdio.h> int main(void){ char str[10]; FILE *fptr=fopen("test.txt","rw"); if(fptr==NULL){ printf("there is not the file!\n"); return 1; } else{ printf("this is good!\n"); } fputs("Iloveyou",fptr); fputs("Iloveyou",fptr); rewind(fptr); printf("---------"); if(fgets(str,4,fptr)==NULL){ printf("fgets is failed"); return 1; } printf(str); printf("---------\n"); fclose(fptr); }
代码二:
#include<stdio.h> #include<string.h> int main() { FILE *stream; char string[]="This is a test"; char msg[20]; /*w+打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。*/ stream=fopen("abc.txt","w+"); /*open a file for update*/ fwrite(string,strlen(string),1,stream); /*write a string into the file*/ fseek(stream,0,SEEK_SET); /*seek to the start of the file*/ fgets(msg,strlen(string)+1,stream); printf("%s",msg); fclose(stream); return 0; }
相关文章推荐
- [ 1011] 注释转换 C++到C的几种情况
- [1010] C注释转c++
- C语言数组与字符串初始化
- 动态数组分配(C语言)
- MFC VC++6.0列表控件的使用
- C++对象在内存中的存储
- 黑马程序员-C语言-小知识点集
- C语言基础之内存分配
- 观察者模式
- C++中导致二义性错误
- C++命名空间
- C/C++数据对齐方式
- 黑马程序员-C语言-数组名作为函数参数
- 手把手教你学单片机--51单片机C语言开发
- Turbo C++ 3.0创建多文件项目的方法
- 利用C++11实现一个自动注册的工厂
- C++小题(八)
- 手把手教你学单片机--51单片机C语言开发
- C语言实现程序开机自启动
- C++中的const和constexpr详解