ANSI C提供了 文件的2种视图:
文本视图和二进制视图
二进制视图中,文本中的每个字节都可以为程序所访问 。在文本视图中,程序看到的内容和文本内容可能会有差异,差异主要体现在换行表现上 。使用文本试图读取文件时,将行尾的本地表示法转换成c试图的,在输出的时候,还要将c试图的行尾表示转换成本地的行尾表示法 。在msdos下 ,\r\n表示行尾。
二进制视图:文本的本地表现。
文本视图:文本行尾的本地表现转换成c视图后的表现。
在unix中二进制和文本没有差别。
标准文件:c程序自动打开3个文件,标准输入、标准输出、和标准错误输出
fopen()函数 :第一个参数是要打开的文件名(包含该文件名的字符串的地址),第二个参数用于指定文件打开模式的一个字符串
模式字符串
|
意义 |
"r" |
打开一个文件,可以读取文件 |
"w" |
打开一个文件,可以写入文件,先将文件的长度截取为0.如果文件不存在的话则先创建文件 |
"a" |
打开一个文件,可以写入文件,向已有文件的尾部追加内容,如果文件不存在的话就先创建文件 |
"r+" |
打开一个文件,可以进行更新,即可以读取和写入 |
"w+" |
打开一个文件,可以读取和写入文件,先将文件的长度截取为0.如果文件不存在的话则先创建文件 |
"a+" |
打开一个文件,可以读取和写入文件,向已有文件的尾部追加内容,如果文件不存在的话就先创建文件 |
上述模式后加上b |
表示二进制而不是文本模式 |
对于unix和linux中文件模式只有一种,所以无所谓+b还是不加b,但是其中的w模式打开一个已有文件的话,文件的内容会被删除,以便程序以一个空文件开始操作。
程序成功打开一个文件之后,fopen()函数会返回一个文件指针,然后利用这个指针对文件进行其他操作。文件指针是一种指向FILE的指针,它不指向实际的文件,而是指向一个关于文件的信息的数据包。
如果打开不成功,fopen()函数返回空指针 Null
fprintf()和fscanf():工作方式和 printf()和scanf()类似,区别在于前2者须呀第一个参数来指定合适的文件int main()
{
const int max=40;
FILE *fp;
char words[max];
if((fp=fopen("words","a+"))==NULL)
{
fprintf(stdout,"canopen file\n");
exit(1);
}
puts("Enter words to add to the file: press the enter");
puts("key at the beginning of a line to terminate");
while(gets(words)!=NULL&&words[0]!='\0')
{
fprintf(fp,"%s",words);
}
puts("file contens:\n");
rewind(fp);
while(fscanf(fp,"%s",words)==1)
{
puts(words);
}
if(fclose(fp)!=0)
{
fprintf(stderr,"error in closing\n");
}
return 0;
}
rewind()函数接受一个文件指针,然后指向文件的开头。
fgets()和fputs()函数
fgets()函数 接受三个参数:第一个参数,用来存储输入的地址(char *类型),第二个参数是整数 用来保存输入字符串的最大长度;最后一个参数是文件指针,指向所有读取的文件。
fgets(buf,MAX,fp);
buf是一个char数组的名称,MAX是字符串最大长度,fp是一个指向FILE的指针。该函数读取的哦啊他所遇到的第一个换行字符的后面,或者读取比字符串最大长度少一个的字符,或者是文件的末尾。容纳后fgets自己添加空字符以构成一个字符串 。
随机存取 : fseek()和ftell()函数
fseek()函数有点类似数组 ,随即存取,在 fopen()打开的文件中直接移动到任意字节处 。
ftell()函数以一个long类型值返回文件的当前位置。
分享到:
相关推荐
C++ 文件输入输出 C++ 文件输入输出是 C++ 编程语言中的一种基本操作,用于将数据读取和写入到文件中。本文将对 C++ 文件输入输出进行详细的解释和实例分析。 标题:C++ 文件输入输出 描述:本文件中包含了 C++ ...
基于Java文件输入输出流实现文件上传下载功能 本文将详细介绍基于Java文件输入输出流实现文件上传下载功能的相关知识点,包括文件上传和下载的实现原理、Java文件输入输出流的基础操作、Servlet的使用等。 文件...
### C++ 文件输入输出知识点详解 #### 一、概述 在C++中,处理文件的输入输出主要依赖于`fstream.h`头文件中定义的几个关键类:`ifstream`(用于文件输入)、`ofstream`(用于文件输出)以及`fstream`(支持文件的...
在编程领域,文件输入输出(I/O)是处理数据存储和检索的核心部分。在这个场景中,我们关注的是“文件输入输出缓冲流”,这是Java或C++等编程语言中常用的概念,用于提高文件读写效率。缓冲流允许我们将数据批量处理...
MATLAB 文件输入输出 MATLAB 是一款为科学家和工程师量身打造的强大软件,是进行计算、模拟、数据分析和可视化等任务的理想工具。它拥有简洁直观的界面和强大的功能,能够轻松处理复杂数学运算和算法开发。MATLAB...
在Java编程语言中,核心Java(Core Java)涵盖了基本的语法和特性,其中包括文件输入输出流(File Input/Output Stream)的概念。文件输入输出流是Java.IO包中的关键类,用于处理程序与磁盘文件之间的数据传输。在这...
Java文件输入输出流,详细描述了java对文件流的操作
C++中的文件输入输出是程序与外部存储交互的重要手段,它允许我们将数据保存到磁盘上以便后续使用或与其他程序共享。在C++中,文件操作主要通过标准库中的`fstream`头文件来实现,包括`ifstream`(输入文件流)、`...
在Java编程语言中,文件输入输出流(File I/O Stream)是处理文件数据的基本机制。本文将深入探讨这个主题,包括基本概念、类库、使用示例以及常见问题。 一、基本概念 文件输入流(FileInputStream)和文件输出流...
1.编写应用程序,使用文件输入输出流实现文件的复制,被拷贝的源文件和复制的目标文件由命令行参数给出。 2.编写应用程序,创建一个文件输出流,向文件中分别写入以下类型数据:int、double和字符串,然后创建一个...
在C++编程中,文件输入输出是程序与外部数据交互的重要方式。本章主要探讨了如何利用C++的流类库进行文件的读写操作,并介绍了程序的组织结构。C++的流类库提供了一种高效且灵活的方式来处理输入输出,不仅支持标准...
文本文件输入输出.cpp
c语言文件输入输出参考.exe
常用类与文件输入输出类,包含实验源代码及运行结果 实验1 检索图书 实验2 统计英文单词
07.mr编程案例--替换默认的文本输入输出组件为sequence文件输入输出组件.mp4
sketchup stl文件输入输出插件 不要费心下载后缀为rbz的文件了,这个才是能用的,还有那些庞大而垃圾的插件包。
### C语言中文件的输入输出知识点详解 #### 一、文件基本概念与分类 - **文件定义**: 在C语言中,文件通常指的是存储在外部介质(例如磁盘、磁带等)上的数据集合。 - **操作系统管理**: 操作系统以文件为单位对...