标题:将数据写入文件之后,为什么打不开磁盘文件?求大家指点一下
只看楼主
Ljldym
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2015-5-9
结帖率:57.14%
已结贴  问题点数:5 回复次数:7 
将数据写入文件之后,为什么打不开磁盘文件?求大家指点一下
这是写入数据
#include"stdio.h"
#include"stdlib.h"
void main()
{
     FILE *fp;
     int i,j,count;
     count=1;
     fp=fopen("E:\\num.dat","wb");
     if(fp==NULL)
    {
        printf("Failed");
        exit(0);
    }
    i=2;
     fwrite(&i,sizeof(int),1,fp);
     for(i=3;i<=100;i+=2)
     {
         for(j=i-1;j>2;j--)
         {
             if(i%j==0) break;
         }
         if(j <= 2)
         {
             fwrite(&i,sizeof(int),1,fp);
              count++;
         }
     }
    printf("本次写入%d个数据",count);
    fclose(fp);
}


这是读取数据
#include"stdio.h"
#include"stdlib.h"
void main()
{
    FILE *fp;
    int i;
    fp=fopen("E:\\num.dat","rb");
    if(fp==NULL){printf("Failed");exit(0);}
    fread(&i,sizeof(int),1,fp);
    while(feof(fp)==0)
    {
        printf("%d\t",i);
        fread(&i,sizeof(int),1,fp);
    }
    fclose(fp);
}


[ 本帖最后由 Ljldym 于 2015-5-10 10:07 编辑 ]
搜索更多相关主题的帖子: include Failed count 
2015-05-10 08:50
calix
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:249
专家分:1442
注 册:2015-5-4
得分:5 
fp=fopen("E\\num.dat","rb");
少了个冒号:
还有fread(fp,sizeof(int),1,fp);你把fp传了两次,第一个参数应该是接受数据的
可以这样
int i;
fread(&i,sizeof(int),1,fp);

判断文件结尾可以用while(!feof(fp))
2015-05-10 09:10
Ljldym
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2015-5-9
得分:0 
回复 2楼 calix
为什么是冒号呢?
2015-05-10 09:19
calix
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:249
专家分:1442
注 册:2015-5-4
得分:0 
fp=fopen("E\\num.dat","wb");
fp=fopen("E:\\num.dat","wb");
看出来了吧
2015-05-10 09:20
Ljldym
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2015-5-9
得分:0 
回复 3楼 Ljldym
还是读不出来。。。还有   写入数据的时候计数器显示了99  可素数没有那么多

[ 本帖最后由 Ljldym 于 2015-5-10 09:47 编辑 ]
2015-05-10 09:33
calix
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:249
专家分:1442
注 册:2015-5-4
得分:0 
你的素数逻辑有问题,给你举个例子,你可以看下
程序代码:
#include"stdio.h"
int main()
{
    FILE *fp;
    int i,j;
    printf("%d ", 2);
    //从3开始,跳过所有的偶数,因为偶数不是素数
    for(i=3;i<=100;i+=2)
    {
        for(j = i - 1; j > 2; j--)
        {
            if(i%j==0) break;
        }
        if(j <= 2){
            printf("%d ", i);
        }
    }
  
    return 0;
}

2015-05-10 09:53
Ljldym
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2015-5-9
得分:0 
回复 6楼 calix
更改之后的程序我又编辑了一下  在上面    可还是打不开文件
2015-05-10 10:08
calix
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:249
专家分:1442
注 册:2015-5-4
得分:0 
fp=fopen("E:\\num.dat","rb");
你写的貌似是中文的冒号
2015-05-10 11:11



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




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

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