Iostream打印省略号错误
iostream prints ellipses wrong
我有一段简单的示例代码
#include <string>
#include <stdio.h>
#include <iostream>
int main ()
{
std::cout << "Connecting to hello world server…" << std::endl;
printf ("Connecting to hello world server...n");
while(true)
{
}
}
在控制台窗口中,第一行将省略号打印为'a'字符,上面有一个波浪,第二行按预期打印。
有人能解释一下为什么会这样吗?
第一行没有"..."
,只有一个字符"…"
改变:
std::cout << "Connecting to hello world server…" << std::endl;
std::cout << "Connecting to hello world server..." << std::endl;
第一个省略号是unicode水平省略号,而第二个省略号是三个连续的句号。
在第一个中,您有一个称为水平ELLIPSIS的单个字符。
第二个是3 period
s
正如其他人所解释的,第一个使用单个Unicode字符NEXT LINE (NEL) (U+0085),而第二个使用三个句号。
至于为什么第一个不能工作,这是控制台窗口的限制。它不像Windows的其他部分一样在Unicode中工作,它与代码页一起工作。大多数字符的数值将与对应的Unicode字符完全不同,因此将打印错误的字符。
在这种情况下,代码页437中的x85
字符是您看到的à
。
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- MSVC多行宏编译器错误
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- Iostream打印省略号错误