【问题标题】:How to use std::wstring with std::istringstream?如何将 std::wstring 与 std::istringstream 一起使用?
【发布时间】:2010-12-20 06:36:42
【问题描述】:

我正在尝试编写一个模板函数,该函数将从给定的字符串中提取给定数据类型的值。我想出了这样的事情:

   template<class T>
    static T getValue(const CString& val_in)
    {
        std::wstring value = val_in;
        std::istringstream iss;
        iss.str(value);

        T val = T();
        iss>>val;
        return val;
    }

但这会给iss.str(value) 语句带来以下错误。

错误 C2664: '无效 std::basic_istringstream<_elem>::str(const std::basic_string<_elem> &)' : 无法将参数 1 从 'std::wstring' 到 'const std::basic_string<_elem> &'

所以基本上,std::istringstream 只接受 std::string 。我认为可能有std::wistringstream,但似乎没有可用的。任何线索我该怎么做?

【问题讨论】:

  • 是什么让您认为没有可用的wistringstream?见 27.7 [lib.string.streams]。
  • @Charles,我在尝试 wistringstream 时遇到编译器错误(在 VC9 上),让我再试一次。
  • 哎呀..现在正在编译,不知道除了这个我做了什么..

标签: c++ stl stream


【解决方案1】:

我的编译器有 wistringstream——就是这样:

typedef basic_istringstream&lt;wchar_t&gt; wistringstream;

【讨论】:

  • 是的,它在那里..我认为其他地方有错误,我很困惑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-21
  • 2014-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多