| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 371 人关注过本帖
标题:c语言文件读写问题!
只看楼主 加入收藏
yang0401
Rank: 2
等 级:论坛游民
帖 子:84
专家分:57
注 册:2011-5-23
结帖率:69.23%
收藏
已结贴  问题点数:10 回复次数:3 
c语言文件读写问题!
程序代码:
#include <stdio.h>

struct list
{
       int i;
       int a[100];
}a[2],b[2],*p,*q;

int main(void)
{
    FILE*l;
    int i;
    p=a;
    l=fopen("z:\\c\\d","wb+");
    for(i=0;i<2;i++,p++)
    {
                        printf("请输入数据");
                        scanf("%d %s",&p->i,&p->a);
    }
    p=a;
    for(i=0;i<2;i++,p++)
    {
                        fprintf(l,"%d%s",p->i,p->a);
    }
    rewind(l);
    getchar();
    q=b;
    for(i=0;i<2;i++,q++)
    {
                        fscanf(l,"%d%s",&q->i,q->a);
    }
    q=b;
    for(i=0;i<2;i++,q++)
    {
                        printf("%d\t%s \n",q->i,q->a);
    }
    fclose(l);
   
   
   
    getchar();
    return 0;
   
}
rewind(l);
    getchar();
    q=b;
为什么这里加了一个getchar();
就可以输出了啊,如果不加的话就会直接闪掉输出。还有就是写入文件的字符是正确的,但是输出地时候却是
图片附件: 游客没有浏览图片的权限,请 登录注册

即使在%s后面加上\n结果也一样啊!!!!!!!!!!!!!!!
搜索更多相关主题的帖子: c语言 
2011-08-23 17:49
yang0401
Rank: 2
等 级:论坛游民
帖 子:84
专家分:57
注 册:2011-5-23
收藏
得分:0 
有高手愿意解答下嘛??
2011-08-24 09:47
lin471306489
Rank: 4
等 级:业余侠客
帖 子:136
专家分:247
注 册:2011-8-16
收藏
得分:0 
槽糕,不懂啊
2011-08-24 10:19
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:10 
这个很正常。
程序运行中得到的文件 d 的内容是 1a2b。在读取文件后
b[0].i == 1, b[0].a == "a2b"
文件已经读取完毕,所以 b[1] 中的元素的值不会被改变,保留原值。而全局变量所占用的内存会默认全部置零,因此
b[1].i == 0, b[1].a == ""
所以最后的输出结果就是那样了。

ps: 字符串最好用 char 数组,而不是 int 数组

[ 本帖最后由 voidx 于 2011-8-24 17:07 编辑 ]
2011-08-24 11:16
快速回复:c语言文件读写问题!
数据加载中...
 
   



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

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