【问题标题】:convert a string to a variant in c++在 C++ 中将字符串转换为变体
【发布时间】:2012-12-25 23:29:19
【问题描述】:

我有这个当前代码,它将“AAPL”输入到 Excel 工作表中,并返回相应的值。

我想这样做,以便在cout << "Ticker: "; 之后我可以输入股票代码(例如 AAPL)并将其用作variant_t ticker = "xxx". 我尝试使用string 这样做,但我得到一个错误说无法从'std::string to const _variant_t &' 转换,有没有办法做到这一点?提前致谢。

 XL->Workbooks->Open(L"F:\\xxx\\Desktop\\fxxxx.xlsx");
 Excel::RangePtr pRange = pSheet->Cells;

 cout << "Ticker: ";
 variant_t ticker = "AAPL";

 pRange->Item[2][1] = ticker;
 double value = pRange->Item[2][2];
 cout << "\n Value = " << value << endl;

【问题讨论】:

    标签: c++ visual-studio-2010 visual-c++ variant


    【解决方案1】:

    致电ticker.SetString(str.c_str()) 应该可以完成这项工作。

    见: http://msdn.microsoft.com/en-us/library/x295h94e%28v=vs.100%29.aspx

    【讨论】:

    • 非常感谢您的帮助,我尝试在不同的行中添加此内容,但出现错误,我将其放在哪里?
    • 介于variant_t ticker;pRange-&gt;Item .. = ticker; 之间。当然 str 应该是调用 std::string 输入的任何内容。你可能想在你读过字符串之后这样做,否则它不会产生正确的效果。 ;)
    • 您可能希望将您的答案添加为“答案”(使代码更具可读性)- 如果您认为我确实可以帮助您到达那里,请“接受”我的答案。跨度>
    【解决方案2】:

    这是工作代码:

        XL->Workbooks->Open(L"F:\\xx\\Desktop\\xxz.xlsx");                              //Open databse
        Excel::_WorksheetPtr pSheet = XL->ActiveSheet;                                      //Point to Active Sheet
        Excel::RangePtr pRange = pSheet->Cells;                                             //Point to Active Cells
        cout << " Ticker: ";                                                                //Prompt Ticker
        string tick;                                                                        //Define string "tick" to store ticker
        cin >> tick;                                                                        //Store ticker
        variant_t ticker;                                                                   //Define variant to be used for ticker
        ticker.SetString(tick.c_str());                                                     //Convert string to variant                                 
        pRange->Item[2][1] = ticker;                                                        //Write ticker to cell
        double bi = pRange->Item[2][2];                                                     //Read Beta, store as "bi"
        cout << "\n Beta = " << bi << endl;                                                 //Return Value
        XL->Application->Quit();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-21
      • 2011-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-02
      相关资源
      最近更新 更多