c++批量读取文件夹名字时不是整数怎么办
问题描述:
之前按照论坛上的方法,批量读取文件夹(名字分别问1,2,3)下的同名文件(temp.txt),
现在文件夹名字不是1,2,3,了,比如他们都乘以一个系数0.2,变成0.2,0.4,0.6了。
我想着把整形改成浮点型
这样却读取不出来,为什么?
答
你的文件夹的名字保留的小数点后几位,如果一位的话,试着改sprintf(path2,"%f//temp.txt",dot); 为 sprintf(path2,"%.1f/temp.txt",dot);保留跟你文件夹小数点位数一致
答
之前的那个问题好像也是我回答的?
和printf一样,sprintf也可以支持各种格式符,比如 %d是整数,那么%f就是float,%lf就是double
如果还有不清楚,直接追问,不用重新提问了。
答
都用STRING,然后强转类型
答
为什么不直接用 "0.%d/tmp.txt",dot呢
答
你可以将数值转换为string类型,然后再读取
答
char path[1000];
sprintf(path, "h;|\visual ... \data\%d\p.txt", j);
ifstream fin(path);
答
是不是小数位数对不上,你格式化一下小数位数,将%f改为%.2f就是保留两位小数