标题:用c_free写的一段程序无法读取文本文件内容
只看楼主
玉玫瑰
Rank: 1
等 级:新手上路
帖 子:14
专家分:9
注 册:2009-12-31
结帖率:66.67%
已结贴  问题点数:30 回复次数:2 
用c_free写的一段程序无法读取文本文件内容
问题见标题,以下是程序代码。

#include<stdio.h>
#include<math.h>
#include<malloc.h>
#include<stdlib.h>
#include<string.h>

main()
{ double v;
  char name[30];
  FILE *in;
  
 printf("enter the file.name:\n");
 scanf("%s",name);
 
 if((in=fopen(name,"r"))==NULL)
   { printf("cannot open the Profile! \n");             /*文件打开*/
     exit(0);
   }
   
fscanf(in,"%f",&v);
printf("%f\n",v);

fclose(in);
}


我做了一个测试文件.txt.里面的内容如下:
0.1,0.2

但是程序在执行到最后一个printf的时候,就自动跳出了程序。我在close前设置断点时发现,v的值为1.390676284197466e-309.

请各位高手给出指点。谢谢!


[ 本帖最后由 玉玫瑰 于 2009-12-31 19:09 编辑 ]
搜索更多相关主题的帖子: 文本文件 free 
2009-12-31 17:03
hnliji1107
Rank: 4
等 级:业余侠客
帖 子:53
专家分:216
注 册:2009-10-23
得分:30 
就LZ的测试文件而言,有几点需要注意:
1.你如果是新建了一个text文件,那么名称就应该是“测试文件”,而不应该是“测试文件.txt”。
2.注意文件里的数据格式,在读取时要保持一致。
3.文件的路径要设置好。
4.读取文件要时时测试是否已经结束,要保证数据读完,所以应用循环读取。

程序基本没问题,我猜想主要是在读取时格式上出错。

程序代码:
#include<stdio.h>//头文件此一个足矣
main()
{ 
    double v;
    char name[30];
    FILE *in;
  
    printf("enter the file.name:");
    scanf("%s",name);

    if((in=fopen(name,"r"))==NULL)
    { 
        printf("cannot open the Profile! \n");             /*文件打开*/
        exit(0);
    }
    while(!feof(in))//读到文件结束为止
    {
        fscanf(in,"%lf,",&v);//注意文件里的格式
        printf("%lf\n",v);
    }
    fclose(in);
}

2009-12-31 19:56
玉玫瑰
Rank: 1
等 级:新手上路
帖 子:14
专家分:9
注 册:2009-12-31
得分:0 
Thanks a lot!

2010-01-03 14:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-294734-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.585566 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved