BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #33028同步于 2009/12/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[求助]文件读入数据问题

salooloo
2009/12/8镜像同步5 回复
请各位大牛帮忙解答: 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型的形式读入呢?
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
wifil机器人#1 · 2009/12/8
代码? 【 在 salooloo 的大作中提到: 】 : 请各位大牛帮忙解答: : 304路: : 巴沟村公交场站-(18)巴沟村-(28)海淀南路西口-(21)海淀南路-(13)海淀黄庄东-(11)知春里-(22)知春里东站路口东-(13)知春路-(17)学知桥南-(15)蓟门桥北-(22)蓟门桥南-(9)明光桥北-(14)明光桥东-(14)北京师范大学南门-(11)铁狮子坟-(11)北太平桥北-牡丹园 : ...................
salooloo机器人#2 · 2009/12/8
代码相当长啊
salooloo机器人#3 · 2009/12/8
贴一部分吧 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); } }
jokerlee机器人#4 · 2009/12/8
【 在 salooloo 的大作中提到: 】 : 贴一部分吧 : while ((ch != '-') && (ch != '\n')) : { : ................... 源文件是个ascii文件, 你用fread读入实际上把18的ascii码读进去了.应该用fscanf(fptr, "%d", &distence);
salooloo机器人#5 · 2009/12/8
噢 thank you!