| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 743 人关注过本帖
标题:文件的问题
只看楼主 加入收藏
langren2526
Rank: 2
等 级:论坛游民
帖 子:46
专家分:37
注 册:2010-3-12
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:4 
文件的问题
不知道程序哪里出错了, 输入第一组数据的时候编译器(VC++6.0)就会弹出一个错误对话框。。。
#include <stdio.h>

typedef struct
{
    int     account;
    char    lastName[15];
    char    firstName[10];
    float   balance;
} Date;

int main (void)
{
    FILE * cfPtr;
    Date   client;

    if ((cfPtr = fopen ("clients.txt", "w+")) == NULL)
        printf ("File could be opened.\n");
    else
    {
        printf ("Enter account number"
                "(0 to end input): \n");
        scanf ("%d", &client.account);

        while (client.account != 0)
        {
            printf ("Enter lastName, firstName, balance:\n");
            scanf ("%s%s%f", client.lastName,
                    client.firstName, &client.balance);

            fseek (cfPtr, (client.account - 1) * sizeof (Date),
                    SEEK_SET);
            fwrite (&client, sizeof (Date), 1, cfPtr);

            printf ("Enter account number.\n");
            scanf ("%d", &client.account);
        }
        fclose (cfPtr);
    }
    return 0;
}
搜索更多相关主题的帖子: 文件 
2010-08-03 00:38
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
收藏
得分:1 
粘贴过来测试了一下,似乎没什么问题。
不过生成的txt文件,有乱码的。
建议用fprintf向文件写数据,用fwrite向文件写数据好像是基于二进制文件的。
2010-08-03 09:01
a151937404
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:117
注 册:2010-6-11
收藏
得分:2 
楼主在main函数里面加上这一条试试
float aa=2.5;
2010-08-03 09:30
langren2526
Rank: 2
等 级:论坛游民
帖 子:46
专家分:37
注 册:2010-3-12
收藏
得分:0 
额~~~
这就比较纠结了。
为什么加上 float aa= 2.5 会运行正常?
2010-08-03 10:05
a151937404
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:117
注 册:2010-6-11
收藏
得分:7 
这是scanf函数的一个BUG,程序没有自动把float库调进来,要自己显示的调进来,加一条有关float的语句就可以了。
2010-08-05 13:45
快速回复:文件的问题
数据加载中...
 
   



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

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