返回信息流请各位大牛帮忙解答:
304路:
巴沟村公交场站-(18)巴沟村-(28)海淀南路西口-(21)海淀南路-(13)海淀黄庄东-(11)知春里-(22)知春里东站路口东-(13)知春路-(17)学知桥南-(15)蓟门桥北-(22)蓟门桥南-(9)明光桥北-(14)明光桥东-(14)北京师范大学南门-(11)铁狮子坟-(11)北太平桥北-牡丹园
文件中有n条这样的路线,要把每条路线读入,用链表串起来,小括号中的数据是上一站到这一站的距离distance,整个公交查询系统的程序比较长,只表达一下意思吧:
if ((file_ptr=fopen("lines_graph.c", "r")) == NULL) //以只读的方式打开文件
{
printf ("Cannot open the lines_graph file!\n");
exit (0);
}
然后用 ch=fgetc(file_ptr) 的方式读取distance之前的字符并存储好,直到指针 file_ptr 指到 18 的 1
之后用 fread(&distance, sizeof(int), 1,file_ptr) 读取18
结果输出的 distance 是个负的很大的值
我改用distance=getw(file_ptr) 想读取18
结果输出的 distance 还是个负的很大的值
555555555 为什么都不对?怎么才能把18以int型的形式读入呢?
这是一条镜像帖。来源:北邮人论坛 / cpp / #33028同步于 2009/12/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[求助]文件读入数据问题
salooloo
2009/12/8镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
代码?
【 在 salooloo 的大作中提到: 】
: 请各位大牛帮忙解答:
: 304路:
: 巴沟村公交场站-(18)巴沟村-(28)海淀南路西口-(21)海淀南路-(13)海淀黄庄东-(11)知春里-(22)知春里东站路口东-(13)知春路-(17)学知桥南-(15)蓟门桥北-(22)蓟门桥南-(9)明光桥北-(14)明光桥东-(14)北京师范大学南门-(11)铁狮子坟-(11)北太平桥北-牡丹园
: ...................
贴一部分吧
while ((ch != '-') && (ch != '\n'))
{
stop_ptr->stop_name[j++]=ch;
ch=fgetc(file_ptr);
} //该站名读取结束
if (ch == '-')
{
stop_ptr->stop_name[j]='\0'; //站点命名完毕
j=0;
ch=fgetc(file_ptr);
if (ch == '(')
{
// fread(&distance, sizeof(int), 1,file_ptr);
// printf ("%d", distance);
//不对 改成下面的还是不对
distance=getw(file_ptr);
printf ("%d", distance);
}
}
【 在 salooloo 的大作中提到: 】
: 贴一部分吧
: while ((ch != '-') && (ch != '\n'))
: {
: ...................
源文件是个ascii文件, 你用fread读入实际上把18的ascii码读进去了.应该用fscanf(fptr, "%d", &distence);