C语言文件操作FILE,读取txt文件内容并写入到变量里面 |
您所在的位置:网站首页 › c语言如何用文件存储数据到文件 › C语言文件操作FILE,读取txt文件内容并写入到变量里面 |
参考文件:https://www.cnblogs.com/lanhaicode/p/10320097.html 链接上文件说得有点详细 读取txt文件内容并写入到变量里面,主要说fscanf和sscanf两个函数 scanf:可以自动识别换行符和空格符 (1)fscanf可以读取txt文件里面同一行多个变量和不同行的变量都同时读取到多个变量里面 #define FILE_SET "/bin/navigation_test.txt" FILE *fp ; double alpha; double wVoronoi; double wObstacle; //0.2 -> 0.1 ->0 double wCurvature; //曲率项系数越大,轨迹扭曲越严重 0.2->0.1->0.05 ->0 double wSmoothness; //0.2 ->0.1->0 int iteration; //迭代次数 int maxiteration; //最大迭代数 double kMax; //曲率 double obsDstMax; fp = fopen(FILE_SET,"r"); if (fp) { 读取 fscanf(fp,"%lf %lf %lf %lf %lf %d %d %lf %lf",\ &alpha,&wVoronoi,&wObstacle,&wCurvature,&wSmoothness,\ &iteration,&maxiteration,&kMax,&obsDstMax); //打印 log_printf("alpha: %lf, wVoronoi: %lf, wObstacle: %lf,wCurvature: %lf,wSmoothness: %lf, iteration: %d, maxiteration: %d, kMax: %lf, obsDstMax: %lf",\ alpha,wVoronoi,wObstacle,wCurvature,wSmoothness,iteration,maxiteration,kMax,obsDstMax); fclose(fp); }上面只是片段代码;其中txt文件是: 0.03 0 0 0 0.2 0 50 0.2 0.5或者: 0.03 0 0 0 0.2 0 50 0.2 0.5(2)sscanf是先读取到一个缓存里面,然后再赋值到各个变量中,是逐行读取的,这种用法适用于多维变量 double b; double a; FILE *fp = fopen(FILE_SET,"r"); if (fp) { char buf[200] = {0}; while (fgets(buf,sizeof(buf),fp) != NULL) //fgets()是逐行读取 { sscanf(buf,"%lf %lf",&b,&a); //同时读取一行txt printf("b: %lf\n",b); printf("a: %lf\n",a); } } fclose(fp);txt文件 12 13 24 87 37 17以上博客还不够全面只是个人笔记方便理解,仅供参考 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |