将字符串转换为c ++中的变体

时间:2012-12-25 23:29:19

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

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

我想这样做,以便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;

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分: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();