当前位置: 代码迷 >> C语言 >> 实训啦,问题多多~大家多多关照!
  详细解决方案

实训啦,问题多多~大家多多关照!

热度:431   发布时间:2006-06-26 10:35:34.0
实训啦,问题多多~大家多多关照!

实训问题1:输入的电话号码与输出的不一样!
是不是格式错了!
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
#define MAX 3
struct day
{
int month;
int day1;
};
struct mydata
{
char name[20];
struct day birthday;
float telnum;//电话号码在结构体中定义为FLOAT够么?11位的手机号码!
};
void creat1();
void input();
void output();
int main()
{
int i;
printf("0.creat a new file.\n");
printf("1.input the data.\n");
printf("2.output the data.\n");
printf("please choose:");
scanf("%d",&i);
getchar();
switch (i)
{
case 0:creat1();break;
case 1:input();break;
case 2:output();break;
}


return 0;
}

void creat1()
{
int f1;
f1=open("C:\\list.bin",O_CREAT);
if(f1!=-1)
{
printf("Creat a new file success!\n");
close(f1);
}
else
printf("File creat Failure!!\n");
}

void input()
{
int f1;
char ch;
struct mydata a[MAX];

f1=open("C:\\3.bin",O_APPEND|O_WRONLY|O_BINARY);//这边用2进制文档和无缓冲的文件OK不?

if((f1!=-1))
{
do
{
printf("input the name:");
gets(a[MAX].name);
printf("input the birthday(day):");
scanf(" %d",&a[MAX].birthday.day1);
printf("input the birthday(month):");
scanf(" %d",&a[MAX].birthday.month);
printf("input the telphonenumber:");
scanf(" %f",&a[MAX].telnum);//电话号码的输入!
write(f1,&a[MAX],sizeof(a[MAX]));
printf("still input (press n ou N to quie)?");
scanf(" %c",&ch);
getchar();
}while((ch!=78)&&(ch!=110));

close(f1);
printf("Data accepted!!\n");
}
else
printf("\nFile Opening Failure!!\n");
}
void output()
{
int f1;
struct mydata a[MAX];

printf("File 3.bin contens:\n");
f1=open("C:\\3.bin",O_RDONLY);

if((f1!=-1))
{
while(!eof(f1))
{
read(f1,&a[MAX],sizeof(a[MAX]));
printf("%s's birthday is %d.%d telphonenumber is %11.0f.\n",a[MAX].name,a[MAX].birthday.month,a[MAX].birthday.day1,a[MAX].telnum);//电话号码的输出!
}
close(f1);
}
else
printf("\nFile Opening Failure!!\n");
}


又做了点修改,加入0选项可以直接建立文件,可是我建立的文件没办法自己定义名称。这方面试过了,搞不过来!

还有这样的建立和插入有可能实现查找和删除的功能么?不要写了N多,最后有些功能无法实现。那就太冤啦~

为什么还没人来呢?星期1都上课了?

[此贴子已经被作者于2006-6-26 11:25:12编辑过]

搜索更多相关的解决方案: 手机号码  int  void  struct  include  

----------------解决方案--------------------------------------------------------
一点提示都米有么?都去干吗了嘛。。。。

哦。中午了。该吃饭咯~~~大家多吃点哈~

偶也去吃了喃~下课。。。下午就回来继续~希望有人能帮我看下~呵呵!
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-26 04:04:00
走刀口→超

等 级:贵宾
威 望:20
帖 子:5028
专家分:0
注 册:2006-3-14
  得分:0 
-。-晕迷。。。。试下哈~
----------------解决方案--------------------------------------------------------
成功。FLOAT是有点过分了喃。。。

明白了哈~
----------------解决方案--------------------------------------------------------
感觉越来越乱了,想让文件里的结构体根据姓名首字母的大小进行排律。

可是怎么排都不排不出。也许根本就不会~~~

T。T。。。。
----------------解决方案--------------------------------------------------------
以下是引用走刀口→超在2006-6-26 14:14:28的发言:
感觉越来越乱了,想让文件里的结构体根据姓名首字母的大小进行排律。

可是怎么排都不排不出。也许根本就不会~~~

T。T。。。。

完全可以做到的,除非某个冷僻的姓。一会我发个帖上来证明一下。

----------------解决方案--------------------------------------------------------

#include <stdio.h>
#include <string.h>
typedef unsigned char usc;

usc*ran[ ]={"全然不顾","岿然不动","浑然不觉","迥然不同","截然不同","轩然大波",

"庞然大物","勃然大怒","恍然大悟","油然而生","戛然而止","飘然而至","自然而然",

"茫然无知","荡然无存","安然无恙","索然无味","孑然一身","焕然一新","嫣然一笑",

"泰然自若","悠然自得","怡然自得","昭然若揭","怅然若失","依然如故","果然如此",

"黯然失色","哑然失笑","溘然长逝","喟然长叹","蔚然成风","轰然倒塌","蓦然回首",

"幡然悔悟","断然拒绝","毅然决然","豁然开朗","潸然泪下","悄然离去","欣然领命",

"坦然面对","肃然起敬","酣然入梦","怆然涕下","公然挑衅","突然袭击","怦然心动",

"井然有序","浩然正气","跃然纸上", };

main( )

{ int i,j,num=sizeof(ran)/sizeof(ran[0]);

for(i=1;i<=num-1;i++)

for(j=1;j<=num-i;j++)

if(strcmp(ran[j-1],ran[j])>0)

{ usc* p=ran[j-1]; ran[j-1]=ran[j]; ran[j]=p; }

for(i=1;i<=num;i++)

{ printf("%s ",ran[i-1]);

if(i%5==0)printf("\n");

}

}


----------------解决方案--------------------------------------------------------
星星终于光顾我的帖子了。。。

我现在急于解决的问题有:

1、做个通信录,用什么样的格式的文件比较适合?2进制?ASCII的?是否要缓冲空间文件。

我选择了2进制的和无缓冲空间的。

2、我把结构体存入文件后。文件里的数据还是结构体么?

感觉不是结构体,没有办法直接用指针指象?难道要用fseek()?完全没用过。

暂时这么多了。感觉一切都太急了。乱的很。今天晚自习应该好好整理下的说!~
----------------解决方案--------------------------------------------------------
用什么软件测试的呀?

我用C-FREE不行耶。。。。
----------------解决方案--------------------------------------------------------