Code Bye

使用sscanf格式化读取文件路径以及数字

现在有一个txt,里面存储格式如下:
E:\program data\a.txt   3
E:\program data\My document\aa.txt  5
路径跟数字之间用一个制表位隔开。
本人现在需要将这里面的文件路径以及后面的数字利用sscanf读入到path 和num中
最容易想到的方法,也是本人一开始就使用的方法:
sscanf(s,"%s%d",&path,%num);
//这种方法对于路径中无空格的完全可以应付,但是对于存在空格的就会出错

后来采用的方法是

sscanf(s,"%[^\t]s%d",&path,&num);
//但是实际上最后返回的正确的数字为1,num并没有得到值。
//后来本人分两步来实现,
//第一步:
sscanf(s,"%[^\t]s",&path);
//接着忽略前面的路径部分,再读取数字
sscanf(s,"%*[^\t]%d",&num);

本人现在的想法是能否直接一步到位,在一个sscanf中同时读取到正确的path和num,望高手赐教!

解决方案

20

sscanf(s,"%[^\t]\t%d",path, &num);

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明使用sscanf格式化读取文件路径以及数字