在 C++ 中将字符串转换为变体

Posted

技术标签:

【中文标题】在 C++ 中将字符串转换为变体【英文标题】:convert a string to a variant in 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;

【问题讨论】:

【参考方案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();

【讨论】:

以上是关于在 C++ 中将字符串转换为变体的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中将字符或字符串转换为位集

如何在 C++ 中将 std::thread::id 转换为字符串?

如何在 C++ 中将大数字符串转换为整数?

在 C++ 中将 Double 转换为字符串

在 C++ 中将字符串转换为向量

如何在 C++ 中将字符串转换为 char 数组?