小编Don*_*n K的帖子

从文本文件读取双精度值

尝试使用C#应用程序从文本文件读取数据。有多行数据,每行以整数开头,然后是一堆双精度值。文本文件的一部分看起来像这样,

   33 0.573140941467E-01 0.112914262390E-03 0.255553577735E-02 0.497192659486E-04 0.141869181079E-01-0.147813598922E-03
   34 0.570076593453E-01 0.100112550891E-03 0.256427138318E-02-0.868691490164E-05 0.142821920093E-01-0.346011975369E-03
   35 0.715507714946E-01 0.316132133031E-03-0.106581466521E-01-0.920513736900E-04 0.138018668842E-01-0.212219497066E-03
Run Code Online (Sandbox Code Playgroud)

33、34、35是整数值,后跟6个double值。并且不能保证这些双精度值之间有空格或其他定界符。即,如果双精度数为负数,则其前面将带有“-”,这将占用空间。因此,基本上所有6个double值都可能在一起。

现在的挑战是,如何优雅地提取它?

我试过的

String.Split(' ');
Run Code Online (Sandbox Code Playgroud)

这将无法正常工作,因为不能保证在初始整数值与其余双精度值之间留有空格。

这可以使用C ++在C ++中轻松解决sscanf。

String.Split(' ');
Run Code Online (Sandbox Code Playgroud)

包含双精度值的文本文件是由第三方工具生成的,我无法控制其输出。

有没有一种方法可以逐行优雅地提取整数和双精度值?

c#

16
推荐指数
2
解决办法
614
查看次数

代码会在CATCH块之后执行吗?

对于许多C++专家来说,这应该是非常简单的问题.

我有一些像下面的C++代码.

BOOL FindNumbersInObj() {

    BOOL ret = true;

    try {
        //Do bunch of things here...
        CMyObj pObj;

        try {
            pObj->GetMyObjectPtr();
        }
        catch (MyException ex) {
            pObj = NULL;
            ret = false;
        }
        ret = pObj->GetAllNumbers();
        //Do something here too....
    }
    catch (MyException ex) {
         //Log Error Message
         ret = false;
    } 
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

如你所见,在另一个TRY中有一个TRY.在CATCH中,它将pObj设置为NULL.那么它是否有可能从CATCH块中出来并执行代码行" ret = pObj-> GetAllNumbers(); "?如果是这样,那么除了代码崩溃之外我会.

这是我看到的一些leagcy/old代码.请在另一个TRY中提出你的意见.

而且,如果它遇到CATCH块,它会转到函数的末尾并调用return ret吗?

c++

-2
推荐指数
1
解决办法
785
查看次数

标签 统计

c# ×1

c++ ×1