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

在 C# 功能中等效的 fscanf()

我相信在.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可能也是合适的。