C++ cout 或 wcout 包含“\n”的字符串不拆分行

C++ cout or wcout a string contain "\n" isn't split the lines

C++11 和编译器是 TDM-GCC。

我制作了一个 ini 文件并从中读取字符串 (UCS-2 LE BOM),通过 WinAPI, GetPrivateProfileStringW.

[String]
Example = Today\nYesterday\nApple

我的函数库将 return 一个变量,std::wstring。而且看起来不错。 然后使用wcout,就像:

#include <iostream>
#include <string>

using namespace std;
wstring readString = GetPrivateProfileStringW();    // Hide the details.
wcout << readString << endl;

我在屏幕上看到了什么:

Today\nYesterday\nApple

我想要的:

Today
Yesterday
Apple

我不确定为什么“\n”在这种情况下不起作用。

为了避免它,我可以创建多个 INI 密钥并使用 "endl" 计算它们。

但是在这个项目中,这里有多少行应该是动态的。

如何在屏幕上将 Windows API 中的单个字符串变量变成多行?

序列 \n 仅被源代码中的 编译器 识别为文字字符串或字符的一部分。它不是内置于库或任何标准函数中的任何东西。

如果您希望序列表示您从外部源读取的输入中的换行符,您必须自己处理。