gcc-locale::facet::_S_create_c_locale name not valid.

问题描述

locale::facet::_S_create_c_locale name not valid.

#include
#include
#include
#include
#include

using namespace std;

int main()
{
locale china("chs");//use china character
wcin.imbue(china);//use locale object
wcout.imbue(china);
map word_count;
wchar_t word;
wifstream ifile("遮天.txt",wifstream::in);
if(ifile.fail())
wcerr << "Fail to read the file." << endl;
while(ifile >> word)
{
auto ret=word_count.insert({word,1});
if(!ret.second)
++ret.first->second;
}
for(auto r:word_count)
wcout << r.first << " occurs "
<< r.second
<< ((r.second > 1) ? " times" :" time") <<endl;
wcout << "Hello world!" << endl;
return 0;
}
出错信息:
terminate called after throwing an instance of 'std::runtime_error'
what(): locale::facet::_S_create_c_locale name not valid

解决方案

http://blog.sina.com.cn/s/blog_612144f301010691.html

解决方案二:

source::http://cruisever.blog.163.com/blog/static/786117572010817112310741/

Starting DSM SA Shared Services: terminate called after throwing an

instance of 'std::runtime_error'
what(): l......
答案就在这里:locale::facet::_S_create_c_locale name not valid

时间: 2024-11-05 20:34:38

gcc-locale::facet::_S_create_c_locale name not valid.的相关文章

让C/C++程序一次编译可以发布到多版本Linux之上

最近页游开放平台比较多, 每个平台要求的Linux版本各不相同, 这给开发人员部署服务器带来了很大的困难. 在本机Linux编译的程序,发布时即便将依赖的so附带到目标Linux环境,仍然会碰到依赖及版本问题,例如: [root@localhost bin]# ldd wkcenter ./wkcenter: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./wkcenter)./wkcenter

Linux安装MongoDB数据库简洁方法

官方下的MongoDB其实是绿色免安装的,http://www.mongodb.org/downloads 默认没有带配置文件,自己建一个: vi mongodb.conf:  代码如下 复制代码 dbpath=/home/mongodata fork=true auth=true logpath=/home/server/mongodb-linux-i686-2.4.3/log.log logappend=true journal=true quiet=true 启动:  代码如下 复制代码

C++ stringstream介绍,使用方法与例子

From: http://www.usidcbbs.com/read-htm-tid-1898.html   C++引入了ostringstream.istringstream.stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件. istringstream类用于执行C++风格的串流的输入操作. ostringstream类用于执行C风格的串流的输出操作. strstream类同时可以支持C风格的串流的输入输出操作. istringstream类是从istre

C++流实现内幕---由boost::lexical_cast引发的一个问题

中午同事碰见一个关于使用boost::lexical_cast产生异常的问题,关键代码如下 string str(8,'/0'); strncpy(&str.at(0),"1234567",7); cout << lexical_cast<int>(str) << endl; 结果运行的时候发生如下异常 terminate called after throwing an instance of 'boost::bad_lexical_cas

visual studio-dll工程添加json.lib出错

问题描述 dll工程添加json.lib出错 dll工程中添加了a.h以及a.cpp,实现一些导出类以及导出函数的相关功能,我要使用json协议,代码如下: a.cpp如下:#include "StdAfx.h" #include "Date.h" #include #include using namespace std; #ifdef DEBUG #undef THIS_FILE static char THIS_FILE[]=_FILE__; #define

VC运行库版本不同导致链接.LIB静态库时发生重复定义问题的一个案例分析和总结

Background MSDN中对于在不同的配置下Link的LIB作了说明: C Runtime Library: 开关 对应的库 版本 /MD MSVCRT.LIB 多线程DLL的Release版本 /MDd MSVCRTD.LIB 多线程DLL的Debug版本 /MT LIBCMT.LIB 多线程静态链接的Release版本 /MTd LIBCMTD.LIB 多线程静态链接的Debug版本 /clr MSVCMRT.LIB 托管代码和非托管代码混合 /clr:pure MSVCURT.LIB

The path "/usr/bin/gcc" is not valid path to the gcc binary

安装 VMWare tools 时出现"The path "/usr/bin/gcc" is not valid path to the gcc binary" 环境:Vmware 8.0+RedHat 9.0 问题:安装 VMWare tools 时询问GCC安装位置,出现"The path "/usr/bin/gcc" is not valid path to the gcc binary".查询是否安装了GCC,显示确实

[C/C++] 各种C/C++编译器对UTF-8源码文件的兼容性测试(VC、GCC、BCB)

在不同平台上开发C/C++程序时,为了避免源码文件乱码,得采用UTF-8编码来存储源码文件.但是很多编译器对UTF-8源码文件兼容性不佳,于是我做了一些测试,分析了最佳保存方案. 一.测试程序 为了测试编译器对UTF-8源码文件兼容性,我编写了这样的一个测试程序-- //#if _MSC_VER >= 1600 // VC2010 //#pragma execution_character_set("utf-8") //#endif #include <stdio.h>

《Linux 高级程序设计(第三版)》——2.2 GCC/GDB编译调试工具基础

2.2 GCC/GDB编译调试工具基础 Linux 高级程序设计(第三版) GCC/G++是GNU最优秀的自由软件之一,它主要提供C/C++程序的编译工作.Linux下的C.C++程序开发过程中,一般都采用GCC/G++/GDB工具.将C语言程序编译成一个可执行文件一般都需经过以下4个步骤. (1)预处理(Preprocessing):对源代码文件中的文件包含.宏定义.预编译语句进行分析和替换. (2)编译(Compilation):根据编译器的语法规则,将高级语言转换为以.s为后缀的汇编语言文