| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1324 人关注过本帖
标题:文件操作
取消只看楼主 加入收藏
yu965634383
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:119
专家分:195
注 册:2017-9-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
文件操作
用fwrite 想文件写入内容,用fread 将文件的内容读取出来。为什么读取到的数据总是得不到自己想要的内容,输出的时候总会有一些乱七八糟的东西
搜索更多相关主题的帖子: 文件 操作 内容 读取 输出 
2017-09-02 22:47
yu965634383
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:119
专家分:195
注 册:2017-9-1
收藏
得分:0 
回复 2楼 renkejun1942
只能用于二进制的读写吗

菜鸟一枚,求各位大神多多关照。
2017-09-03 11:00
yu965634383
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:119
专家分:195
注 册:2017-9-1
收藏
得分:0 
# include <stdio.h>
struct person
{
    char name[32];
    int phone[11];
    char relation[32];
};
int main (void)
{
    int i;
    struct person a , b , *p2;

    FILE *p = fopen ("person.txt" , "ab+");
    if (p == 0)
        return 0;
    p2 = &a;
    scanf ("%s" , p2->name);//因为name 是字符串,首字母就是地址,p2也是一个地址,所以这里可以省略&
    for (i = 0; i < 11; i++)
        scanf ("%d" , &a.phone[i]);
    scanf ("%s" , &a.relation );//a是变量,不是指针,需要用&;
   
    while (a.phone[0] > 0)
    {
        fwrite (p2 , sizeof (struct person) , 1 , p);
        scanf ("%s" , a.name);
        for (i = 0; i < 11; i++)
            scanf ("%d" , &a.phone[i]);
        scanf ("%s" , a.relation );
    }
    fclose (p);
    FILE * fp = fopen ("person.txt" , "rb+");
    if (fp == 0)
        return 0;
    p2 = &b;
    while (!feof (fp))
    {
        fread (p2 , sizeof (struct person) , 1 , fp);
        printf ("%s " , p2->name);
        for (i = 0; i < 10; i++)
            printf ("%d" , p2->phone[i]);
        printf ("%d " , p2->phone[i]);
        printf ("%s" , p2->relation);
        printf ("\n");
    }
    fclose (fp);
    return 0;
}
为什么最后的那个数据总会输出2次啊

菜鸟一枚,求各位大神多多关照。
2017-09-03 12:18
yu965634383
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:119
专家分:195
注 册:2017-9-1
收藏
得分:0 
受教了

菜鸟一枚,求各位大神多多关照。
2017-09-03 14:31
yu965634383
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:119
专家分:195
注 册:2017-9-1
收藏
得分:0 
为什么不能用feof函数来判断文件的结尾呢

菜鸟一枚,求各位大神多多关照。
2017-09-03 14:43
yu965634383
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:119
专家分:195
注 册:2017-9-1
收藏
得分:0 
只要用feof函数判断文件结尾,最后输出就会多一个
while (!feof (fp))
    {
        fread (&a, sizeof (struct person) , 1 , fp);
        printf ("%s " , a.name);
        for (i = 0; i < 10; i++)
            printf ("%d" , a.phone[i]);
        printf ("%d " , a.phone[i]);
        printf (" %s\n" , a.relation);
    }
最后的一个会重复是什么原因啊

菜鸟一枚,求各位大神多多关照。
2017-09-03 14:51
快速回复:文件操作
数据加载中...
 
   



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

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