现在有一个txt,里面存储格式如下:
E:\program data\a.txt 3
E:\program data\My document\aa.txt 5
路径跟数字之间用一个制表位隔开。
本人现在需要将这里面的文件路径以及后面的数字利用sscanf读入到path 和num中
最容易想到的方法,也是本人一开始就使用的方法:
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);