我的代码是用c ++语言编写的。代码的一部分是:
fscanf(filename,"%ld%*[^\n]\n", x);
fscanf(filename,"%ld%*[^\n]\n", y);
fscanf(filename,"%lf%*[^\n]\n", z);
fscanf(filename,"%lf%*[^\n]\n", q);
fscanf(filename,"%lf%*[^\n]\n", w);
fscanf(filename,"%[^#]%*[^\n]\n", r);
据我所知,这是c ++中的一种拆分行为,通过给定文件中的数据种类? 如果有办法在c#中做同样的事情?或者可能有实现此类功能但使用其他代码和函数的方法?
答案 0 :(得分:0)
我相信在.NET中没有相应的东西。
但是有人努力实现类似的东西。例如:http://www.blackbeltcoder.com/Articles/strings/a-sscanf-replacement-for-net
答案 1 :(得分:0)
你真的在数字和行尾之间有垃圾吗?如果没有,请在下面的代码中抛弃Join和TakeWhile子句:
using(var reader = new StreamReader(filename))
{
var x = long.Parse(string.Join("", reader.ReadLine().TakeWhile(char.IsDigit)));
}
对于模式,带有“^ \ d +”的Regex.Match也可能是合适的。