1

不思議なことに、次の文字列は終了前に停止します。

#include <iostream>
#include <string>

using std::wcout;
using std::wstring;


int main()
{
    wstring test = L"Os elfos compõem uma raça atlética e esguia, da mesma altura dos humanos. Eles apresentam a mesma variedade de compleições dos humanos, mas costumam ser mais bronzeados ou morenos. A cor típica do cabelo de um elfo é marrom escuro, ruivo escuro, verde musgo ou dourado escuro. As orelhas dos elfos são longas e pontiagudas, seus olhos são azuis, violetas ou verdes vibrantes. Esse povo tem poucos pêlos no corpo, mas prefere manter uma aparência selvagem e embaraçada nos cabelos.\nOs elfos atingem a maturidade na mesma velocidade que os humanos, mas demonstram pouquíssimos efeitos do envelhecimento depois da idade adulta. O primeiro sinal da idade avançada de um elfo geralmente é uma mudança na cor dos cabelos — muitas vezes ficando grisalhos, mas quase sempre escurecendo ou assumindo cores mais castanhas. A maioria dos elfos vive bem até os 200 anos de idade e permanecem vigorosos até o fim.";
    wcout << test;
    return 0;
}

出力:

Os elfos comp§em uma raþa atlÚtica e esguia, da mesma altura dos humanos. Eles apresentam a mesma variedade de compleiþ§es dos humanos, mas costumam ser mais bronzeados ou morenos. A cor tÝpica do cabelo de um elfo Ú marrom escuro, ruivo escuro, verde musgo ou dourado escuro. As orelhas dos elfos sÒo longas e pontiagudas, seus olhos sÒo azuis, violetas ou verdes vibrantes. Esse povo tem poucos pÛlos no corpo, mas prefere manter uma aparÛncia selvagem e embaraþada nos cabelos.
Os elfos atingem a maturidade na mesma velocidade que os humanos, mas demonstram pouquÝssimos efeitos do envelhecimento depois da idade adulta. O primeiro sinal da idade avanþada de um elfo geralmente Ú uma mudanþa na cor dos cabelos

正しい出力:

Os elfos comp§em uma raþa atlÚtica e esguia, da mesma altura dos humanos. Eles apresentam a mesma variedade de compleiþ§es dos humanos, mas costumam ser mais bronzeados ou morenos. A cor tÝpica do cabelo de um elfo Ú marrom escuro, ruivo escuro, verde musgo ou dourado escuro. As orelhas dos elfos sÒo longas e pontiagudas, seus olhos sÒo azuis, violetas ou verdes vibrantes. Esse povo tem poucos pÛlos no corpo, mas prefere manter uma aparÛncia selvagem e embaraþada nos cabelos.
Os elfos atingem a maturidade na mesma velocidade que os humanos, mas demonstram pouquÝssimos efeitos do envelhecimento depois da idade adulta. O primeiro sinal da idade avanþada de um elfo geralmente Ú uma mudanþa na cor dos cabelos — muitas vezes ficando grisalhos, mas quase sempre escurecendo ou assumindo cores mais castanhas. A maioria dos elfos vive bem até os 200 anos de idade e permanecem vigorosos até o fim.

常に同じ部分「...cabelos」で止まります。何が起こっている?文字列を小さなチャンクに分割すると、正しく動作します。それは問題ですか、文字列のサイズですか?

4

1 に答える 1

0

印刷が停止するあたりの文字を調べて、Unicode での文字を確認しました。

あなたのハイフンは実際にはユニコードのダッシュ0x2014です。

これにより、null がストリームに出力され、文字列が終了します。

大量のコード、データ、機能、または変更に直面した場合は、目隠しをして小さな断片に切り刻むのが最善です。扱いやすい大きさになるまで、半分に切り、さらに半分に切り、さらに半分に切るのが最善の場合もあります。それ以外の場合は、何も取り除いてから、少しずつ追加します。

于 2013-02-15T21:25:35.830 に答える