0

我有用 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# 中做同样的事情?或者可能有实现此类功能但使用其他代码和功能的方法?

4

2 回答 2

0

我相信 .NET 中没有等价物。

但是有人努力实施类似的东西。例如: http: //www.blackbeltcoder.com/Articles/strings/a-sscanf-replacement-for-net

于 2012-04-12T16:19:41.633 回答
0

你真的在数字和行尾之间有垃圾吗?如果没有,请放弃下面代码中的 Join 和 TakeWhile 子句:

        using(var reader = new StreamReader(filename))
        {
            var x = long.Parse(string.Join("", reader.ReadLine().TakeWhile(char.IsDigit)));
        }

带有 "^\d+" 模式的 Regex.Match 也可能是合适的。

于 2012-04-12T17:18:18.983 回答