| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 459 人关注过本帖
标题:一个文件操作问题
只看楼主 加入收藏
陨灭
Rank: 2
等 级:等待验证会员
帖 子:44
专家分:65
注 册:2013-4-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
一个文件操作问题
昨天同学练习编程,遇到问题,让我帮忙调试。但是我搞了很久,还是有个问题搞不定,感觉上没有问题,不知道哪里有问题。麻烦帮忙看下,也许是我忽略了什么地方。谢谢!


程序功能:先输入一个字符串,然后保存在一个文件中;再输入一个字符串,接着保存在该文件中。然后把文件里的东西显示出来。


问题应该发生在第二次文件操作的时候,前面的部分经测试没有问题。先贴出程序结果。
图片附件: 游客没有浏览图片的权限,请 登录注册

生成的文件:
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 字符串 
2014-03-20 21:04
陨灭
Rank: 2
等 级:等待验证会员
帖 子:44
专家分:65
注 册:2013-4-21
收藏
得分:0 
代码如下:
#include<stdio.h>
#include<stdlib.h>

int main(void)
{
    FILE *fp;
    char str[90], *asd, ch;
    int a1;

    fp = fopen("D:\\a5.txt", "w");
    if (fp == NULL)
    {
        printf("open mistake!\n");
        exit(0);
    }

    printf("please input string1: ");
    ch = getchar();
    while( ch != '\n')
    {
        fputc(ch, fp);
        ch = getchar();
    }
    fclose(fp);

    printf("please input string2: ");
    gets(str);

    fp = fopen("F:\\a5.txt", "a");
    if (fp == NULL)
    {
        printf("open mistake!\n");
        exit(0);
    }
    //我认为上面没有问题

    //******************************************
    //问题是此处写入文件失败,原因不明
    a1 = fputs(str, fp);
    //******************************************

    fclose(fp);
    if (a1 == EOF)
    {
        printf("make mistake!\n");
        exit(0);
    }

    fp = fopen("D:\\a5.txt", "r");
    if (fp == NULL)
    {
        exit(0);
    }

    asd = fgets(str, 90, fp);
    printf("The string is : ");
    puts(asd);
    fclose(fp);

    return 0;
}

1@w-h.win
2014-03-20 21:05
饭桶
Rank: 6Rank: 6
等 级:侠之大者
帖 子:165
专家分:422
注 册:2011-4-5
收藏
得分:10 
你看看你的fopen函数的参数,一下打开D盘的,一下又打开F盘里的文件了,两次打开的就不是同一个文件

人得一生得奋斗!
2014-03-20 23:18
ljx小子
Rank: 8Rank: 8
来 自:星星
等 级:蝙蝠侠
威 望:2
帖 子:222
专家分:916
注 册:2013-10-7
收藏
得分:10 
#include<stdio.h>
#include<stdlib.h>

int main(void)
{
    FILE *fp;
    char str[90], *asd, ch;
    int a1;

    fp = fopen("D:\\a5.txt", "w");
    if (fp == NULL)
    {
        printf("open mistake!\n");
        exit(0);
    }

    printf("please input string1: ");
    ch = getchar();
    while( ch != '\n')
    {
        fputc(ch, fp);
        ch = getchar();
    }
    fclose(fp);

    printf("please input string2: ");
    gets(str);

    fp = fopen("D:\\a5.txt", "ab+");//这里应该是一个位置吧,而且是用追加的方式打开要不然会覆盖原来的东西呢
    if (fp == NULL)
    {
        printf("open mistake!\n");
        exit(0);
    }
    //我认为上面没有问题

    //******************************************
    //问题是此处写入文件失败,原因不明
    a1 = fputs(str, fp);
    //******************************************

    fclose(fp);
    if (a1 == EOF)
    {
        printf("make mistake!\n");
        exit(0);
    }

    fp = fopen("D:\\a5.txt", "r");
    if (fp == NULL)
    {
        exit(0);
    }
图片附件: 游客没有浏览图片的权限,请 登录注册

    asd = fgets(str, 90, fp);
    printf("The string is : ");
    puts(asd);
    fclose(fp);

    return 0;
}

。。。。。。。。。。。
2014-03-20 23:21
陨灭
Rank: 2
等 级:等待验证会员
帖 子:44
专家分:65
注 册:2013-4-21
收藏
得分:0 
回复 3楼 饭桶
非常感谢,确实没有注意到,因为没有想到是那里有问题

1@w-h.win
2014-03-21 12:40
快速回复:一个文件操作问题
数据加载中...
 
   



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

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