int ferror(
FILE* _Stream
注意:feof判断文件结束是通过读取函数fread/fscanf等返回错误来识别的,故而判断文件是否结束应该是在读取函数之后进行判断。比如,在while循环读取一个文件时,如果是在读取函数之前进行判断,则如果文件最后一行是空白行,可能会造成内存错误。
-
举例
#include<stdio.h>
int main(){
FILE *fp;
fp=fopen("1.txt","r");
fgetc(fp);
if(feof(fp)){
printf("succeed reading");
fclose(fp);
return 0;
-
深入了解
EOF是文本文件结束的标志。在文本文件中,数据是以字符的ASCⅡ代码值的形式存放,普通字符的ASCⅡ代码的范围是32到127(十进制),EOF的16进制代码为0xFF(十进制为-1),因此可以用EOF作为文件结束标志。
当把数据以二进制形式存放到文件中时,就会有-1值的出 现,因此不能采用EOF作为二进制文件的结束标志。为解决这一个问题,ASCI C提供一个feof函数,用来判断文件是否结束。feof函数既可用以判断二进制文件又可用以判断文本文件。
文件的基本概念
所谓"文件"是指一组相关数据的有序集合。文件通常是驻留在外部介质(如磁盘等)上的, 在使用时才调入内存中来。从不同的角度可对文件作不同的分类。
从用户的角度看,分为普通文件
1.按存储介质:1.1 普通文件:存储介质文件,如磁盘,磁带
1.2 设备文件:非存储介质,如键盘,打印机,显示器2.按文件的逻辑结构:2.1 流式文件:由一个个字符(字节)数据顺序组成,如视频流
2.2 记录文件:有具有一定结构的记录组成,如word文件,pdf文件3.按数据的组织形式:3.1 文本文件:ASCII文件,每个字节存放一个字符的ASCII
3.2 二进制文件:数据按其在内存中的
错误报告函数: void perror( char const *message ); 头文件stdio.h
终止执行: void exit ( int status ); status = EXIT_SUCCESS和EXIT_FAILURE 头文件stdlib.h
MS-DOS和UNIX都支持采用 $program answer 的方式进行输入输出重定向。从
int i;
int a[10];
output=fopen("d://python.txt","r");/*d://python.txt为文件地址和名字*/
input=fopen("d://python.txt","a");
C语言中我们用到的最频繁的输入输出方式就是scanf()与printf()。
scanf(): 从标准输入设备(键盘)读取数据,并将值存放在变量中。
printf(): 将指定的文字/字符串输出到标准输出设备(屏幕)。注意宽度输出和精度
输出控制。 C语言借助了相应的缓冲区来进行输入与输出。
如上的简图 ̄□ ̄|| OK,我们接下来进入正题:
1. 流是什么?
“流...
C语言读写文件有两种方式ASCII 和 二进制。现在举例说明:
内存中的字符或字符串都是文本模式(unicode编码存储,统一长度,定长码,方便)内存中的其他变量都是以二进制编码存储程序的代码以文本模式ASCII码方式存储
1.在windows系统中,文本模式下,文件以" \r\n"代表换行。若以文本模式打开文件,并用fputs等函数写入换行符"\n"时,函数会自动在"\n"前面加上"\r"。...
一. 流式处理简介
在我接触到java8流式处理的时候,我的第一感觉是流式处理让集合操作变得简洁了许多,通常我们需要多行代码才能完成的操作,借助于流式处理可以在一行中实现。比如我们希望对一个包含整数的集合中筛选出所有的偶数,并将其封装成为一个新的List返回,那么在java8之前,我们需要通过如下代码实现:
List<Integer> evens = new Arra...
需要理解的知识点包括:数据流、缓冲区、文件类型、文件存取方式
1.1 数据流:
指程序与数据的交互是以流的形式进行的。进行C语言文件的存取时,都会先进行“打开文件”操作,这个操作就是在打开数据流,而“关闭文件”操作就是关闭数据流。
1.2 缓冲区(Buffer):
指在程序执行时,所提供的额外内存,可用来暂时存放做准备执行的数据。它的设置是为了提高存取效率,因为...