在 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->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++ 中将字符串转换为变体的主要内容,如果未能解决你的问题,请参考以下文章