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
仅被源代码中的 编译器 识别为文字字符串或字符的一部分。它不是内置于库或任何标准函数中的任何东西。
如果您希望序列表示您从外部源读取的输入中的换行符,您必须自己处理。
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
仅被源代码中的 编译器 识别为文字字符串或字符的一部分。它不是内置于库或任何标准函数中的任何东西。
如果您希望序列表示您从外部源读取的输入中的换行符,您必须自己处理。