Chinaunix

标题: 帮忙看下,太郁闷了 [打印本页]

作者: aopaw    时间: 2008-10-30 14:48
标题: 帮忙看下,太郁闷了

  1. #include <stdio.h>
  2. typedef struct{
  3.     float p1;
  4.     float p2;
  5.     float p3;
  6. }pointv;

  7. typedef struct{
  8.     int  ia;
  9.     int  ib;
  10.     int  ic;
  11. }pointf;

  12. pointv vtemp;
  13. pointf ftemp;

  14. pointv va[510];
  15. pointf fa[1010];


  16. int main(void){
  17.     FILE *fp;
  18.     int  i=1;
  19.     int  j=0;
  20.     char mark;
  21. //    int  end;

  22.     fp=fopen(".\\bunny_1k.obj","rb+");
  23.    
  24.     fscanf(fp,"%c %f %f %f", &mark, &vtemp.p1, &vtemp.p2, &vtemp.p3);
  25.     va[i].p1=vtemp.p1;
  26.     va[i].p2=vtemp.p2;
  27.     va[i].p3=vtemp.p3;



  28.     while( mark!='f' ){
  29.         fprintf(stdout,"%c %f %f %f\n", mark, vtemp.p1, vtemp.p2, vtemp.p3);
  30.         i+=1;
  31.     fscanf(fp,"%c %f %f %f", &mark, &vtemp.p1, &vtemp.p2, &vtemp.p3);
  32.         va[i].p1=vtemp.p1;
  33.     va[i].p2=vtemp.p2;
  34.     va[i].p3=vtemp.p3;
  35.     }

  36.     fa[j].ia=(int)vtemp.p1;
  37.     fa[j].ib=(int)vtemp.p2;
  38.     fa[j].ic=(int)vtemp.p3;

  39.     while( !feof(fp) ){
  40.         j+=1;
  41.         fscanf(fp,"%c %d %d %d", &mark, &ftemp.ia, &ftemp.ib, &ftemp.ic);
  42.         fa[j].ia=ftemp.ia;
  43.         fa[j].ib=ftemp.ib;
  44.         fa[j].ic=ftemp.ic;
  45.         fprintf(stdout,"%c %d %d %d\n",mark, ftemp.ia, ftemp.ib, ftemp.ic);
  46.     }
  47.     return 0;
  48. }
复制代码


这个是测试的程序,在原来程序中要从一个.obj文件中读数据,bug太多只好单拿出来测,就是想把文件中数据存到数组中,直接用数组去读fscanf(fp....,&fa.ia)这样的就直接出错了,但这个文件里即使用赋值的方法也不行,把赋值的3个都去掉就可以看到,弄了好长时间了,实在找不着原因。附件里那个bunny_1k.obj就是要读的文件

[ 本帖最后由 aopaw 于 2008-10-30 15:33 编辑 ]
作者: aopaw    时间: 2008-10-30 15:02
bunny.pdf (28.58 KB, 下载次数: 23)
这是附件,就是要读的文件bunny_1k.obj我改了名了
作者: nhuczp    时间: 2008-10-30 15:21
fp=fopen(".\\bunny_1k.obj","rb+");

把路径改成完整的路径。
作者: aopaw    时间: 2008-10-30 15:35
不是这个原因,这个程序在linux和里都能跑,那个只是linux下的路径, 有人和我说数组不够长,也不正确。v一共502个f一共1000个




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2