首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >stringstream和法语区域设置(French_France.1252)

stringstream和法语区域设置(French_France.1252)
EN

Stack Overflow用户
提问于 2010-10-17 22:06:05
回答 1查看 1.2K关注 0票数 2
代码语言:javascript
复制
std::stringstream stream_french;
stream_french.imbue(std::locale("")); // French_France.1252
stream_french << 1000;
std::string value_french = stream_french.str();

这段代码将1000转换为字符串“1000”,但是value_french1的值是-96而不是32,这是为什么?

代码语言:javascript
复制
value_french[0] = 49
value_french[1] = -96 
value_french[2] = 48
value_french[3] = 48 
value_french[3] = 48

如果我这样做了

代码语言:javascript
复制
stream_french << "1 000";

value_french1的值为32。该错误似乎与char的signedess有关,但为什么它只影响进行转换时的空格?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-17 22:18:54

-96是160的有符号等价物,即0xA0;如果您查看Windows 1252 codepage table,您会看到这样的字符是

A0 = U+00A0 :不间断空格

哪一个是a space that don't allow an automatic line break

文本处理软件通常假定可以在出现空格字符的任何位置插入自动换行符;不换行的空格可以防止这种情况发生(当然,前提是软件可以识别该字符)。例如,如果文本"100 km“不能完全放在行尾,软件可能会在"100”和"km“之间插入换行符。为了避免这种不受欢迎的行为,编辑器可能会选择在"100“和"km”之间使用不间断的空格。这保证了文本"100 km“不会被破坏:如果它不能放在一行的末尾,它将被整体移到下一行。

与"100 km“和”1/000“一样,很明显,在1和3个0之间使用换行是不可取的,因此使用了不换行的空格;这确实很聪明。

明确地说:用一个“正常”的空间:

1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 0001 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000

使用不间断的空格:

1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1/000 1 000 1/000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 1 000 000 1 000 000 1 000 000 1 000 000 1 000 000 1 000 000 1 000 000 1 000 000 1 000 000 1 000 000 1 000 000 1 000 000 1 000 000 1 000 000 1 000 000 1 000 000 1 000 1 000 1 000 000 1 000 000 1 000 1 000 1 000 000 1 0001.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1。

(如果您看不到任何差异,请尝试使用浏览器的字体大小进行放大/缩小)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3953553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档