c语言怎么判断文件为空啊,如果文件里没有数据,就会报错

问题描述

c语言怎么判断文件为空啊,如果文件里没有数据,就会报错
    while(!feof(fp))
    {
        s=(Tx *)malloc(sizeof (Tx));
        fscanf(fp,"%d %s %d
",&s->id,&s->name,&s->tel);
        printf("%d%s%d
",s->id,s->name,s->tel);
        s->next=a->next;
        a->next=s;
    }
    printf("Successful Read!");

    如果文件中没有数据就会报错,怎么处理  feof()不是可以判断的吗

解决方案

C语言读文件中的TXT数据

解决方案二:

先看报错的地方,然后再加判断等避免

解决方案三:

feof是判断是否到文件末尾结束EOF位置
你说里面有没数据的判断,如果有空格呢,肯定不行吧
可以试试stat函数
int stat(const char path, struct stat *buf)
struct stat {
dev_t st_dev; /
ID of device containing file /
ino_t st_ino; /
inode number /
mode_t st_mode; /
protection /
nlink_t st_nlink; /
number of hard links /
uid_t st_uid; /
user ID of owner /
gid_t st_gid; /
group ID of owner /
dev_t st_rdev; /
device ID (if special file) /
off_t st_size; /
total size, in bytes /
blksize_t st_blksize; /
blocksize for filesystem I/O /
blkcnt_t st_blocks; /
number of 512B blocks allocated /
time_t st_atime; /
time of last access /
time_t st_mtime; /
time of last modification /
time_t st_ctime; /
time of last status change */
};

解决方案四:

应该是可以的,你确定是这里报错?把上下文贴出来看看。

解决方案五:

我的理解是这样的,fscanf,最好读二进制文件,文本的使用fread函数。
feof判断指针是否达到文件尾部,没有到尾部,中间的数据不够长度也会出错。

解决方案六:

试试这个

OFSTRUCT ReOpenBuff;

HFILE handle = OpenFile("D:1.txt", &ReOpenBuff, GENERIC_READ );

DWORD dwSize = GetFileSize ( (HANDLE)handle, NULL);

时间: 2024-12-01 17:44:17

c语言怎么判断文件为空啊,如果文件里没有数据,就会报错的相关文章

jxl读取excel文件时报内存溢出,修改内存配置后,还是报错

问题描述 jxl读取excel文件时报内存溢出,修改内存配置后,还是报错 解决方案 解决方案二:贴码解决方案三:请楼主贴代码,这个你不贴代码,我们难道去猜吗

编程c语言-c语言指针问题 char *p="abcdefg"+1; 为什么会报错,const char*无法转换为char*

问题描述 c语言指针问题 char *p="abcdefg"+1: 为什么会报错,const char*无法转换为char* char p="abcdefg"+1: 为什么会报错,const char无法转换为char* 解决方案 abcdefg是const 不能直接加一 解决方案二: 我想我知道了,字符串是const的对象所以指向他的指针也必须用const修饰,但这样又有个问题了char* p="ddd":为什么就可以呢?"ddd&q

nodejs 判断 数组为空的 json数据时,一直报错undefined

问题描述 nodejs 判断 数组为空的 json数据时,一直报错undefined 对不起各位大神,请不要恨铁不成钢,我真心不懂这个简单的初级问题. 我自己在做一个API小程序,用nodejs的request包抓取了许多json数据. 问题简单的来说就是,我需要判断一个有时候有数值,有时候却为空的属性,属性名为deliverTime, 当deliverTime存在的时候,抓取这个json属性,当deliverTime不存在的时候,不抓取. 然而,如果我的判断语句为: if(body.data.

c语言-代码位置不同为什么会报错?【C语言基础问题】

问题描述 代码位置不同为什么会报错?[C语言基础问题] gets()语句放在第8行会报错,第10行就不会报错,菜鸟不明白是怎么回事了,求解. 代码如下: # include <stdio.h> # include <string.h> int main() { char string[100]; char c; gets(string); int i, num = 0, word = 0; //gets(string); for(i = 0; (c = string[i]) !=

重新想象 Windows 8 Store Apps (24) - 文件系统: Application Data 中的文件操作, Package 中的文件操作, 可移动存储中的文件操作

原文:重新想象 Windows 8 Store Apps (24) - 文件系统: Application Data 中的文件操作, Package 中的文件操作, 可移动存储中的文件操作 [源码下载] 重新想象 Windows 8 Store Apps (24) - 文件系统: Application Data 中的文件操作, Package 中的文件操作, 可移动存储中的文件操作 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 文件系统 Applicatio

Python引用(import)文件夹下的py文件的方法_python

Python的import包含文件功能就跟PHP的include类似,但更确切的说应该更像是PHP中的require,因为Python里的import只要目标不存在就报错程序无法往下执行.要包含目录里的文件,PHP中只需要给对路径就OK.Python中则不同,下面来看看这个例子. 目录结构: a.py 要 import dir目录下的 b.py 文件.a.py代码如下: 复制代码 代码如下: # coding=utf-8 "import dir 目录下的 b.py 文件"   impo

Rails文件上传file_field报错Encoding::UndefinedConversionError

服务器用的是ubuntu12 64bit,环境是ruby1.9.3+rails3+mysql,测试是在windows2003上. 上传 一个[.gitconfig]文件,没有问题,上传[新浪微博数据挖掘.pdf]报错,上传[back.jpg]报错. 下 面是两段信息,是从[log/production.log]中粘贴出来的.上面一段你是没有问题的日志,下面一段是报错 之后的日志. 01.Started POST "/posts" for 106.3.102.43 at 2012-10-

ommon-Myeclipse报错找不到features文件夹

问题描述 Myeclipse报错找不到features文件夹 想给我的Myeclipse安装spket,但总是报错:如图所示:显示在MyEclipse 10 文件夹下面找不到features文件夹中的某个文件,但是实际上features文件夹位于和MyEclipse 10 并列的Common文件夹下面,为什么系统自己总默认去MyEclipse 10文件夹里面找呢?而不是去Common下面找 解决方案 features文件夹没有了.Eclipse没安装好.重新安装一下,或直接拷贝这个文件 解决方案

VB2010 如何复制文件而不用把这个文件打开

问题描述 一个现有的软件向D:Tesing.txt文本里不停刷新数据,我要定时把这个文本里的数据给读出来,如下面的代码DimReadOutasstringFileIO.FileSystem.CopyFile(D:Tesing.txt,"C:Testing.txt",True)LineReadOut=File.ReadAllText(C:Testing.txt)开始运行时正常,能读出,可是不一会客户端的软件自己报错说D:Tesing.txt已被打开,无法写入.CopyFile在复制过程中