飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3578|回复: 7

[C/C++] 文件读取

[复制链接]

该用户从未签到

发表于 2010-6-3 21:00:18 | 显示全部楼层 |阅读模式
main()
{
     char dd[255];
     FILE *fp;       //文件指针
     
     fp=fopen("h:\\tools\\fg.ini","r");  //读取文件,r表示读取.
     while(!feof(fp))  //当不为文件最后时
     {
      fscanf(fp,"%s",dd );  //fscanf输入/读取文件内容
     
     printf("%s\n",dd);  //打印 读取的内容
     }
     getch();   
      }
==============================================================
以上程序正常运行.  

我想改成一个有提示的程序,就是自己输入路径+文件名 ,可是不成功,程序崩溃.
  1. main()
  2. {
  3.       char data[255];
  4.       char * fname;
  5.       FILE *fp;

  6.       printf("pls input the file path and name!\n");
  7.       scanf("%s",fname);
  8.       printf("%s",fname);
  9.       fp=fopen(fname,"r");
  10.       while(!feof(fp))
  11.        {
  12.          fscanf(fp,"%s",data);
  13.          printf("%s\n",data);
  14.          
  15.          fclose(fp);
  16.          }
  17.          getch();
  18. }      
复制代码
是fopen那里错了吗?只能跟常量吗
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-11-15 23:07
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2010-8-8 01:13:04 | 显示全部楼层
    第十行的那个r是干嘛的。。。


    我记不清了。。。



    不过,楼主愿意动脑筋,还是要表扬一下的。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-12-1 15:36
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2010-8-28 18:12:36 | 显示全部楼层
    很负责地告诉楼主、、您冤枉 fopen() 了、、、/:017

    程序崩溃是因为楼主的  fname  没有开辟空间、、、、
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-12-1 15:36
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2010-8-28 18:26:26 | 显示全部楼层
    又看了一下楼主的程序、、发现楼主太粗心了

    fclose(fp) 应该放在while(){}循环的外面吧、、、、

    否则楼主的程序就是死循环,并且只能读出文件中的第一个字符串

    还有就是楼主在程序最后的 getch() 用法不对、、估计是通不过编译的

    ====================================================================

    俺不理解程序的最后的那个 getch() 是干什么用的、、

    希望楼主能告诉一下、、相互交流哈
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-12-1 15:36
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2010-8-28 18:33:07 | 显示全部楼层
    第十行的那个r是干嘛的。。。


    我记不清了。。。



    不过,楼主愿意动脑筋,还是要表扬一下的。
    武子 发表于 2010-8-8 01:13



        ‘r’表示只读、、、就是对打开的文件只能读,不能写、、、

    不知道我这样说的能不能被理解、、、

    ===============================================

    ‘w’  表示写

      'rb'    表示以二进制的形式打开文件并且只读

       'wb'  表示以二进制的形式打开文件并且可写入
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-11-15 23:07
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2010-8-28 18:34:36 | 显示全部楼层
    嗯,我想起来啦   r   


    xiexie楼上的。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-11-15 23:07
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2010-8-28 18:35:47 | 显示全部楼层
    回复 4# tims


        getch()应该是为了读取一个空格吧。。。


    防止程序一闪而过,,,没有界面。。。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-12-1 15:36
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2010-8-28 20:01:45 | 显示全部楼层
    回复 7# 武子


        我把 getch() 去掉了才能编译通过啊、、

    我把它改成 getchar() 也能通过、、(楼主原意是要用这个吧?)

    不过感觉加不加这一句没啥影响啊、、

    我没出现一闪而过的情况、、、

    是不是在 TC 中会出现这种情况啊(我没用过TC)、、

    我用的是VC、重来没有一闪而过的时候、、
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表