| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 675 人关注过本帖
标题:请问各位朋友,我最近在编关于文件的c语言时,总是出现打开错误,这有一个例 ...
只看楼主 加入收藏
Joneyao
Rank: 1
等 级:新手上路
帖 子:7
专家分:1
注 册:2012-3-9
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:8 
请问各位朋友,我最近在编关于文件的c语言时,总是出现打开错误,这有一个例子,能帮我指点指点吗?谢谢了。。。#include<stdio.h>
#include<stdio.h>
#include<stdlib.h>
void main()
{
    int a[2],c,i;
    FILE *sp,*sb;
    char filename[10],filename2[10];
    printf("please input the filename:(limit in ten data)\n");
    scanf("%s",filename);
    if((sp=fopen(filename,"r"))==NULL)
    {
        printf("open fail!\n");
        exit(0);
    }
    for(i=0;i<2;i++)
   
fread(sp,sizeof(int),1,a[i]);
   
c=a[1]+a[0];
printf("%d",c);
if((sb=fopen(filename,"w"))==NULL)
{
    printf("open fail!\n");
    exit(0);
}
        
printf("input the write filename:\n");
scanf("%s",filename2);
fwrite(c,sizeof(int),1,sb);
printf("over!\n");
fclose(sp);
fclose(sb);
}
搜索更多相关主题的帖子: please include 
2012-03-09 21:38
zjkedy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:131
注 册:2010-5-14
收藏
得分:20 
你使用的 fread(sp,sizeof(int),1,a[i]);
跟定义的
fread(void*buffer,size_tsize,size_tcount,FILE*stream);
类型不一致!

fwrite的第一个形参数据类型也得强制转换下!
2012-03-09 22:04
Joneyao
Rank: 1
等 级:新手上路
帖 子:7
专家分:1
注 册:2012-3-9
收藏
得分:0 
回复 2楼 zjkedy
谢谢你帮我指出这些错误,但在我改完后还是在运行时出现打开错误,还望你能帮我再指导一下,非常感谢!
#include<stdio.h>
#include<stdlib.h>
void main()
{
    int a[2],c,i;
    FILE *sp,*sb;
    char filename[10],filename2[10];
    printf("please input the filename:(limit in ten data)\n");
    scanf("%s",filename);
    if((sp=fopen(filename,"rb"))==NULL)
    {
        printf("open fail!\n");
        exit(0);
    }
    for(i=0;i<2;i++)
   
fread(&a[i],sizeof(int),1,sp);
   
c=a[1]+a[0];
printf("%d",c);
if((sb=fopen(filename,"wb"))==NULL)
{
    printf("open fail!\n");
    exit(0);
}
        
printf("input the write filename:\n");
scanf("%s",filename2);
fwrite(&c,sizeof(int),1,sb);
printf("over!\n");
fclose(sp);
fclose(sb);
}

2012-03-09 22:55
zjkedy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:131
注 册:2010-5-14
收藏
得分:0 
程序代码:
c=a[1]+a[0];
printf("%d",c);
if((sb=fopen(filename,"wb"))==NULL) //这边再次打开filename
{
    printf("open fail!\n");
    exit(0);
}
       
printf("input the write filename:\n");//filename2 完全没用
scanf("%s",filename2);
fwrite(&c,sizeof(int),1,sb);
2012-03-09 23:28
Joneyao
Rank: 1
等 级:新手上路
帖 子:7
专家分:1
注 册:2012-3-9
收藏
得分:0 
不啊,我上面是一个是read文件,一个是write文件啊,难道说两个文件要一起打开吗
2012-03-10 19:30
zjkedy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:131
注 册:2010-5-14
收藏
得分:0 
回复 5楼 Joneyao
那对同一个文件要进行两次打开的操作, 你可以一次 就以 可读可写的方式打开啊!
2012-03-10 20:40
chan_
Rank: 3Rank: 3
来 自:武汉
等 级:论坛游侠
帖 子:84
专家分:122
注 册:2012-2-29
收藏
得分:0 
.
2012-03-10 20:52
zjkedy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:131
注 册:2010-5-14
收藏
得分:0 
回复 7楼 chan_
你查下你的filename这个文件打开几次的
2012-03-11 09:13
Joneyao
Rank: 1
等 级:新手上路
帖 子:7
专家分:1
注 册:2012-3-9
收藏
得分:0 
好 ,谢谢
2012-03-16 14:26
快速回复:请问各位朋友,我最近在编关于文件的c语言时,总是出现打开错误,这有 ...
数据加载中...
 
   



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

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