首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言读取资料

2013-01-06 
C语言读取文件读取文件时,文件内容不空但是在判断的时候老是为空是怎么回事啊?代码如下#includestdio.h#

C语言读取文件
读取文件时,文件内容不空但是在判断的时候老是为空是怎么回事啊?
代码如下
#include<stdio.h>
#include<stdlib.h>

struct file1
{
char data;
float weight;
struct file1 *next;
};
void main()
{

struct file1 *p;
FILE *fp;
fp=fopen("input.txt","r");
if(!fp)
{
printf("文件打开失败!\n");
exit(0);
}
while(!feof(fp))
{
fread(p,sizeof(struct file1),1,fp);
printf("%s\t%f",p->data,p->weight);
printf("\n");
p=p->next;
}
fclose(fp);
}

[解决办法]
是不是文件名的问题,你写文件的时候是怎样的?C语言读取资料
[解决办法]
文件内容不空但是在判断的时候老是为空?

输出了"文件打开失败!“ ?  路径对吗?
[解决办法]
用二進制方式打開試試: C语言读取资料
fp=fopen("input.txt","rb");
[解决办法]

引用:
读取文件时,文件内容不空但是在判断的时候老是为空是怎么回事啊?
代码如下
#include<stdio.h>
#include<stdlib.h>

struct file1
{
char data;
float weight;
struct file1 *next;
};
void main()
{

struct file1 *p;
FI……

#include<stdio.h>
#include<stdlib.h>

struct file1
{
char data;
float weight;
struct file1 *next;
};
void main()
{
struct file1 *p=malloc(1000);
FILE *fp;
fp=fopen("h:\\a.txt","rb");
if(!fp)
{
printf("文件打开失败!\n");
exit(0);
}
while(!feof(fp))
{fread(p,sizeof(struct file1),1,fp);  //这里的fread正好读到最后一个,这个还会输出两个哦
printf("%c\t%f",p->data,p->weight);   //这里应该是%c啊。。。
printf("\n");
p=p->next;                           //p->next不一定存在,会报错
}
fclose(fp);
}


[解决办法]
除楼上所说问题外,调用malloc函数的代码在最后要记得free

热点排行