C语言判断文件指针是否结尾的问题

摘要:
c语言的文件指针结尾问题:有两个方法可以判断文件指针是否到结尾payattention:读取文件的函数会影响文件指针移动1.使用feof函数判断,如果到了结尾返回0,否则返回非02.使用EOF判断指针是否到结尾仅用于普通文件,不适用于二进制文件适用条件--------重点方法1:*1.有一个弊端就是,feof函数判断文件指针是否到结尾,假设已经到结尾了,还要再读取一次数据进行判断,也就是说feof用来判断文件指针是否到文件结尾是,会多读一次数据。
c语言的文件指针结尾问题:有两个方法可以判断文件指针是否到结尾
pay attention:读取文件的函数会影响文件指针移动
1.使用feof(文件指针)函数判断,如果到了结尾返回0,否则返回非0
2.使用EOF(就是-1)判断指针是否到结尾 仅用于普通文件,不适用于二进制文件
适用条件--------重点
方法1:
*1.有一个弊端就是,feof函数判断文件指针是否到结尾,假设已经到结尾了,还要再读取一次数据进行判断,也就是说feof用来判断文件指针是否
到文件结尾是,会多读一次数据。(为什莫会这样,因为这是头文件stdio.h的定义问题)
*2.解决办法:可以先在循环外,读一次数据,这样在循环就能得到正常的读取次数了
eg:
typedef struct node{ //这是一个学生信息的结点
char name[20];
char num[20];
char sex[20];
int age;
}Student;
//主函数中
int main(){
FILE *fp;  
Student stu;
if((fp=fopen("E:\a.txt","rb+")!=NULL){
fscanf(fp,"%s%s%s%d",stu->name,stu->num,stu->sex,&stu->age);
while(!feof(fp)){
cout<<stu-name<<endl; //输出所有文件中的学生姓名
fscanf(fp,"%s%s%s%d",stu->name,stu-num,stu->sex,&stu->age);
}
}
}

reference:

http://www.mamicode.com/info-detail-233424.html

https://www.cnblogs.com/dayongge/p/14294881.html

https://blog.csdn.net/bingqing07/article/details/5785080/

fscanf(fp,"%s%s%s%d",stu->name,stu-num,stu->sex,&stu->age);

免责声明:文章转载自《C语言判断文件指针是否结尾的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[转载] 第三篇:数据仓库系统的实现与使用(含OLAP重点讲解)常见反函数、反函数导数(微分)公式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

(八)golang--复杂类型之指针

首先我们要明确:(1)基本数据类型:变量存的就是值,也叫值类型; (2)获取变量的地址,用&,例如var num int,获取num的地址:&num; (3)指针类型:变量存的是一个地址,这个地址指向的空间存的才是值,例如var ptr *int = &num; (4)获取指针类型所指向的值,使用*,例如var *ptr int,使...

11-c++虚拟函数

虚拟函数 #include "stdio.h" class A{   public:     void print()     {       printf("%s","this is A ");     } }; class B:public A{   public:     void print()     {       printf("%s","...

&amp;lt;转&amp;gt;boost::any的用法、优点和缺点以及源代码分析

01.#include <iostream> 02.#include <list> 03.#include <boost/any.hpp> 04. 05.typedef std::list<boost::any> list_any; 06. 07.//关键部分:可以存放任意类型的对象 08.void fill...

C语言 锁的使用总结

1. C 互斥锁 mutex初始化与去初始化 #include <pthread.h>int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr);int pthread_mutex_destroy(pthread_mutex_t *mutex);...

[C++]智能指针的实现与使用

智能指针 智能指针是当我们在使用对象时,有时会把对象的内存分配在堆上忘记释放,导致内存泄露,并且当多个指针共享同一个对象的内存时,容易出现重复释放内存,导致错误。 我们针对所需要共享的对象,手动完成一个智能指针类来代替该类别的指针,自动帮我们释放内存,共享内存。以一个共享Object类的对象数据来说明两个版本的共享指针的实现。 class Object...

C语言--isspace()函数实现

  c语言中有很多处理string类型的函数,今天简单的使用了一下isspace()函数,自我实现调用了一下。 Isspace()函数   包含在ctype.h头文件中 函数原型: int isspace(int c); 函数功能   判断输入字符是否为空格/回车/制表符等 函数参数:   获取实参char类型的字符 函数返回值:   如果获取到的字符是空...