特别的,如果数据由内存输出到屏幕(显示器),我们接收数据的屏幕,称为标准输出流对象,简称为“标准输出流”(standard output stream),和之前文章介绍的文件流对象类似,C语言标准用stdout作为该对象的变量名,表示显示器。输入数据流 数据由外部设备,比如键盘、硬盘上的文件等,输入(读取)到内存中,称为“输入...
C语言把数据的输入输出都作为文件对象来处理,用FILE类型存储数据流的状态,并且用FILE*指针类型访问文件对象。文件对象按照输入输出的特性分为标准输入流、标准输出流、标准错误流、文件输入流、文件输出流等五种类型,这五种数据流中,前三种统称为标准流,后两种统称为文件流。从本文开始,开始讲解文件流的各种操作...
从外设(键盘)输入,或输出到外设(屏幕),或者从硬盘输入或输出,都没有在内存中直接中直接读写速度快。所以为了提高效率,C语言标准库提供了文件缓冲区机制,即在内存中为每个流对象分配一块区域用于暂存数据。当需要从数据流中读取数据时,系统会先从缓冲区中查找是否有可用的数据,如果有,就会从缓冲区直接读取...
// 只读方式打开文件 FILE* fp = fopen("foo.txt", "r");//检查是否正常打开 if (fp == NULL) { //perror函数除了像printf函数一样输出字符串 //还能输出错误的原因 perror("Error opening file");return 1;} // 将文件指针移动到第6个字符的位置 //fseek函数详细用法后面讲解 //SEEK_SET 表示...
在前面的课程中,我们学习了C语言中的标准输入输出,如printf()和scanf()函数,它们可以让我们在屏幕上显示或输入一些数据。但是在实际的编程中,我们经常需要处理一些存储在文件中的数据,比如一个文本文件或一个二进制文件,这些数据的类型和长度可能各不相同,不能用一个简单的变量来存储。那么我们该怎么办呢?在...
当然,既然标准流也是文件指针对象,所以也可以将数据输出到标准流:fprintf(stdout,”hello world”);fprintf(stdout,”name:%s,age:%d,sex:%c”,”Tom”,13,’m’);以此类推,之前介绍过的文件输入函数,也可以从标准流读取。比如;int n1,n2;fscanf(stdin,”%d %d,&n1,&n2);fprintf函数的返回值返回成功...
具体细节可以参看《C语言输入输出流(4)文本模式、二进制模式和强制模式》。要点3:文本模式打开的文件后,ftell函数的正确用法只能适用于下面的语句:fseek(fp,ftell(fp),SEEK_SET)fssek函数的具体用法后面会详细讲解,在这个时候ftell函数才能正确地返回文件位置。要点4:当以追加模式打开时(a),在没有追加数据...
从本质上看,文本文件和二进制文件实际上对我们读写和操作文件是没有区别。但是在windows系统中,因为历史遗留问题,在文本文件中,将输入的”\r\n”两个字符解释为”\n”处理,输出时又将”\n”解释为”\r\n”处理。如果我们在写入或读取文件时,希望禁止这种转换,把“\r\n”在写入和读取时保持原样处理,...
C语言的标准输入流、文件输入流统称为“输入流”,标准输出流、标准错误流、文件输出流统称为“输出流”。C语言把所有数据流对象,全部作为“文件对象”(File Object)来处理,在标准库stdio.h中专门定义了一个结构体类型FILE类型,形式如下:typedef /* unspecified */ FILE; FILE类型的具体定义和实现与具体的操作...
文件I/O标准流I/O 按照数据处理的特点分:直接I/O无格式I/O有格式I/O 按照字符特性来分:窄字符I/O宽字符I/O 本期主要介绍直接输入输出函数fread函数和fwrite函数,以及对函数执行失败后进行错误检查和处理的关联函数feof函数和ferror函数。其他函数会在后面文章中介绍。文件的输入输出按照上面的分类方法有如下...