标题:一个程序问题,求助!!
只看楼主
yyu0378
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-7-3
 问题点数:0 回复次数:1 
一个程序问题,求助!!

我编写了下面这段代码:
#include<ctype.h>
#include<stdio.h>
#define SIZE 3
//#define PIN "0123456"
struct worker_type
{
char num[8];
char name[12];
}work[SIZE];

void save()
{
FILE *fp;
int i;
if((fp=fopen("text","wb"))==NULL)
{
printf("cannot open file\n");
}
for(i=0;i<SIZE;i++)
if(fwrite(&work[i],sizeof(struct worker_type),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}

void showall()
{
int i;
FILE *fp;
fp=fopen("text","rb");
for(i=0;i<SIZE;i++)
{
fread(&work[i],sizeof(struct worker_type),1,fp);
printf("%s %s\n",work[i].num,work[i].name);
}
fclose(fp);
}

void main()
{ int m;
scanf("%d",m);
switch(m)
{
case 1: {
int i;
for(i=0;i<SIZE;i++)
scanf("%s %s",work[i].num,work[i].name);
save();
}break;
case 2: showall();break;
}
}


编译通过,不过运行时,选择时提示内存不可读的错误,如果将main改成:
void main()
{
int i;
for(i=0;i<SIZE;i++)
scanf("%s %s",work[i].num,work[i].name);
save();
showall();
}
就完全没有问题了。但我希望选择运行,要如何实现呢??

搜索更多相关主题的帖子: include write file 
2007-07-03 00:38
酒肉弥勒佛
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:399
专家分:0
注 册:2006-6-6
得分:0 
scanf("%d",m);

改为 scanf("%d",&m);

编程是为了提高效率,好的程序是因为他的高效;在编程的道路上,永远追逐高效的算法
2007-07-03 14:41



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




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

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