在 C# 功能中等效的 fscanf()
本文关键字:fscanf 功能 | 更新日期: 2023-09-27 18:30:58
我有用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# 中做同样的事情?或者可能有办法实现这样的功能,但使用其他代码和功能?
我相信在.NET中没有等效项。
但是有人努力实施类似的东西。例如:http://www.blackbeltcoder.com/Articles/strings/a-sscanf-replacement-for-net
数字和行尾之间真的有垃圾吗?如果没有,请在下面的代码中放弃 Join 和 TakeWhile 子句:
using(var reader = new StreamReader(filename))
{
var x = long.Parse(string.Join("", reader.ReadLine().TakeWhile(char.IsDigit)));
}
带有"^''d+"的模式的Regex.Match可能也是合适的。