【发布时间】:2017-04-10 07:31:12
【问题描述】:
C++11 和编译器是 TDM-GCC。
我通过 WinAPI 制作了一个 ini 文件并从中读取字符串(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
我不确定为什么“\n”在这种情况下不起作用。
为了避免这种情况,我可以创建多个 INI 键并使用“endl”来计算它们。
但是在这个项目中,这里有多少行应该是动态的。
如何从屏幕上的 Windows API 中找出单个字符串变量,变成多行?
【问题讨论】:
-
"\n"由编译器转换,而不是wcout。您的 INI 文件未通过编译器传递。字符是逐字写的。这是预期的行为。如果你想要换行,你将不得不自己解析字符串。 -
@IInspectable 谢谢你,我会听从你的建议的。
标签: string c++11 winapi cout tdm-gcc