C++ cout или wcout строка, содержащая "\n", не разбивает строки
C++11 и компилятор TDM-GCC.
Я сделал INI-файл и прочитал строку из него (UCS-2 LE BOM), используя WinAPI, 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 на экран, стать несколькими строками?
1 ответ
Последовательность \n
распознается только компилятором в исходном коде как часть литеральной строки или символа. Это ничего, что встроено в библиотеку или любые стандартные функции.
Если вы хотите, чтобы последовательность представляла новую строку внутри ввода, который вы прочитали из внешнего источника, вы должны обработать ее самостоятельно.