【发布时间】:2018-10-28 16:29:33
【问题描述】:
我尝试将内容输出到文件
std::locale::global(std::locale());
std::wofstream file(outfilename , std::wofstream::binary);
for (const auto & j : grid[0]) {
try {
std::wcout << L"String in WideString " << decoder->decode(j) << std::endl;
file << decoder->decode(j) << std::endl;
}
catch (std::exception& e) {
std::cout << e.what() << std::endl;
}
}
经过一定次数的调用后,wcout 停止输出任何内容(甚至“WideString 中的字符串”也没有输出),
(我对其进行了调试,它在停止输出文本后按预期执行了 wcout)
wofstream 也会在相同数量的调用后停止输出。
这是我第一次使用widestrings、streams和couts。
感谢您对此进行调查。
【问题讨论】:
-
主要嫌疑人要么是
decoder,要么是grid,要么是grid[0],要么是js之一无效;或decode做一些未定义的事情。 -
当我正常 cout 那些字符时,这个 cout 将输出,具有相同的 j 和网格
-
当我省略自己的解码器时也会发生同样的情况
-
只有当我对文件流使用 wcout 和 wofstream 时它才会停止工作
-
这对我来说很好用,正如@molbdnilo 所说,问题似乎与解码或网格有关repl.it/repls/PolishedEmptyActivemovie