| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 413 人关注过本帖
标题:[求助]谁告诉我,凭什么这样!?
取消只看楼主 加入收藏
a13007788
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-7
收藏
 问题点数:0 回复次数:0 
[求助]谁告诉我,凭什么这样!?

编译环境: TC2.0。下载版,无安装程序,解压了就能用的那种。

我的程序如下:
#include <stdio.h>
#define NULL 0
#define LEN sizeof(struct record)

struct record
{
char *name;
char *tel[3];
char *group;
struct record *next;
}

main()
{
struct record *head;
struct record *p1, *p2;
FILE *fp = fopen("F:\\records.txt","rt");
p1 = p2 = (struct record *) malloc(LEN);
if(fp == 0)
{
printf("Open file failure.");
}
else
{
fscanf(fp, "%s%s%s%s%s", p1->name, p1->tel[0], p1->tel[1], p1->tel[2], p1->group);
printf("hahh~First record is: %s-%s-%s-%s-%s\n", p1->name, p1->tel[0], p1->tel[1], p1->tel[2], p1->group);
if(strcmp(p1->name, "") == 1)
{
printf("No record!");
}
else
{
head = p1;
do
{
fscanf(fp, "%s%s%s%s%s", p1->name, p1->tel[0], p1->tel[1], p1->tel[2], p1->group);
if(strcmp(p1->name, "") == 1)
{
printf("No record or record is loaded!");
p2->next = NULL;
break;
}
printf("Now, the record is: %s-%s-%s-%s-%s\n", p1->name, p1->tel[0], p1->tel[1], p1->tel[2], p1->group);;
p1 = (struct record *) malloc(LEN);
p2->next = p1;
p2 = p1;
}while(feof(fp) == 0);
fclose(fp);
}
} /*
for(p1 = head; p1->next != NULL; p1 = p1->next)
{
printf("name: %s\ntel1: %s\ntel2: %s\ntel3: %s\ngroup: %s\n\n", p1->name, p1->tel[0], p1->tel[1], p1->tel[2], p1->group);
} */
getch();
}

F:\records.txt文件中的内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

可我运行了输出结果却是这样的:

hahh~First record is: 1-2-3-4-5
Now, the record is: 6-7-8-9-10
Now, the record is: 11-12-13-14-15
Now, the record is: <null>-<null>-18-19-20
Null pointer assignment


凭什么!?循环嘛!凭什么不一样!?凭什么有“null”的出现!?并且如果记录多了,null出现的位置都还会改变!是我的TC2.0 盗版!?

2006-08-08 14:18
快速回复:[求助]谁告诉我,凭什么这样!?
数据加载中...
 
   



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

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