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);
}
[解决办法]
是不是文件名的问题,你写文件的时候是怎样的?
[解决办法]
文件内容不空但是在判断的时候老是为空?
输出了"文件打开失败!“ ? 路径对吗?
[解决办法]
用二進制方式打開試試:
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=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);
}