C ++ cout或wcout一个字符串包含" \ n"没有分割线

时间:2017-04-10 07:31:12

标签: string c++11 winapi cout tdm-gcc

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

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

[String]
Example = Today\nYesterday\nApple

我的函数库将返回一个变量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

我不确定为什么&#34; \ n&#34;在这种情况下不起作用。

为了避免这种情况,我可以使用&#34; endl&#34;创建多个INI密钥并对其进行cout。

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

如何从屏幕上的Windows API中获取单个字符串变量,变成多行?

1 个答案:

答案 0 :(得分:0)

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

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