将一个字符串转换为C++中的variant

8
我有以下代码,它将"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;
2个回答

6

非常感谢您的帮助,我尝试在不同的行中添加它,但是出现了错误,请问应该放在哪里? - user1594369
variant_t ticker;pRange->Item .. = ticker; 之间。当然,str 应该是你的 std::string 输入变量的名称。而且你可能想在读取字符串后再这样做,否则它没有正确的效果。 ;) - Mats Petersson
你可以将你的答案添加为“回答”(这样代码会更易读)-如果你认为我已经足够帮助你了,就请“接受”我的答案。 - Mats Petersson

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();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接