标题:我不明白 文件操作 写入和关闭会报错
只看楼主
a15022606145
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2015-7-11
 问题点数:0 回复次数:4 
我不明白 文件操作 写入和关闭会报错
程序代码:
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
void sort_red(int *a); //排序红球
int save(int *a,int b,int c)
{
    const char * filename="C:\\Users\\lxz\\Desktop\\z\\abc.txt";
    FILE * fp = fopen(filename,"ab");
    if(fp=NULL)
    {
        printf("can not open the file : %s\n",filename);
        return -1;
    }
    char buf[1024];
    sprintf(buf,"购买%d次\t 红球:%d %d %d %d %d %d 蓝球:%d\n",c,a[0],a[1],a[2],a[3],a[4],a[5],b);
    int n =strlen(buf);
    buf[n]=0;
    fwrite(buf,1,strlen(buf),fp);
    //fclose(fp);
}
void NOW_TIME()
{
    time_t now = time(NULL);
    tm info = * localtime(&now);
    printf("启动时间为:%d年%d月%d日,%d:%d:%d\n",
        info.tm_year+1900,info.tm_mon+1,info.tm_mday,info.tm_hour,info.tm_min,info.tm_sec);
}
void END_TIME()
{
    time_t end = time(NULL);
    tm info = * localtime(&end);
    printf("结束时间为:%d年%d月%d日,%d:%d:%d\n",
        info.tm_year+1900,info.tm_mon+1,info.tm_mday,info.tm_hour,info.tm_min,info.tm_sec);
}
void winning_number(int *a,int* b)
{
    
    for(int i = 0 ; i<6;i++)   //获奖红球
    {
        a[i]=rand()%33+1;
    }
    for(int i =0;i<6;i++)     //去除重复
    {
        for(int j=1;j<6;j++)
        {
            if(a[i]==a[j])
                a[j]=rand()%33+1;
        }
    }
    sort_red(a);
      *b = rand()%16+1;   //获奖蓝球
}
void sort_red(int *a)
{
        for(int i =0;i<6;i++)   //排序红球
    {
        for(int j=i;j<6;j++)
        {
            if(a[i]>a[j])
            {
                int tmp = a[i];
                a[i]=a[j];
                a[j]=tmp;
            }
        }
    }
}
void buy_number(int *a,int* b)
{
    
    for(int i = 0 ; i<6;i++)   //购买红球
    {
        a[i]=rand()%33+1;
    }
    for(int i =0;i<6;i++)     //去除重复
    {
        for(int j=1;j<6;j++)
        {
            if(a[i]==a[j])
                a[j]=rand()%33+1;
        }
    }
    sort_red(a);
      *b = rand()%16+1;   //购买蓝球
}
int bingo(int *a,int*b,int b1,int b2)
{
    int ture = 0;
    for(int i = 0;i<6;i++)
    {
        if(a[i]==b[i])
        {
            continue;
        }
        else
            return ture;
    }
    if(b1==b2)
        ture=1;
    return ture;
}
int main()
{
    srand(time(NULL));
    NOW_TIME();
    
    int win_red[6];
    int win_blue=0;
    winning_number(win_red,&win_blue);

    int buy_red[6];
    int buy_blue=0;
    buy_number(buy_red,&buy_blue);
    

    printf("\n\n开奖结果为:\n");
    printf("红球:\t");
    for(int i =0;i<6;i++)
        printf("%d\t",win_red[i]);
    printf("蓝球\t%d\n",win_blue);


    int scond = 0;
    while(1)
    {
        scond++;
        if(bingo(win_red,buy_red,win_blue,buy_blue)!=0)
        
            break;
        save(buy_red,buy_blue,scond);
        printf("购买次数为:%d\t\t\t  总计花费:%d\n",scond,scond*2);
    }

    printf("购买次数为:%d\t\t\t  总计花费:%d\n",scond,scond*2);
    
    END_TIME();
    //printf("总共历时%d\n",)

    
    //save();
    return 0;
}



这是代码,双色球测试什么时候获得一等奖,   当我文件操作 save函数,  fwrite报错 fclose也报错 不知道为甚恶魔


第19/20行位置
搜索更多相关主题的帖子: void int printf for i++ 
2018-09-07 18:01
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
//if(fp=NULL)
if(fp==NULL)
2018-09-07 19:26
a15022606145
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2015-7-11
得分:0 
回复 2楼 吹水佬
我这文件怎么无法写入呢??
2018-09-07 23:33
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 3楼 a15022606145
可以先化简测试一下,再看看是哪里出问题
如:
#include <stdio.h>

int save()
{
    const char * filename="C:\\temp\\abc.txt";
    FILE * fp = fopen(filename,"ab");
    if(fp==NULL)
    {
        printf("can not open the file : %s\n",filename);
        return -1;
    }
    char buf[1024];
    int n;
    if ((n=sprintf(buf,"购买%d次\t 红球:%d %d %d %d %d %d 蓝球:%d\r\n",1,2,3,4,5,6,7,8)) > 0)
        fwrite(buf,n,1,fp);
    fclose(fp);
}

int main()
{
    save();
    return 0;
}

[此贴子已经被作者于2018-9-8 04:42编辑过]

2018-09-08 04:32
tomye
Rank: 2
等 级:论坛游民
帖 子:32
专家分:10
注 册:2017-12-1
得分:0 
一楼正解
2018-09-12 16:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-489674-1-1.html




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

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