問題タブ [wifstream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
340 参照

c++ - std::wstring に存在する wchar_t が見つからない

と で遊んでいるstd::wstringstd::wfstream、奇妙な動作に遭遇しました。std::basic_string<wchar_t>::findつまり、特定の文字が見つからないように見えます。次のコードを検討してください。

ここでは、ファイルの最初の行を読み取ってinputファイルに書き込むだけoutputです。プログラムが実行される前、最初のファイルの内容はaąbcćdで、出力ファイルは空です。コードの実行後、入力ファイルは出力ファイルに正常にコピーされます。

私にとって驚くべきことは、 でć手紙を見つけようとしたところbuf、前述の奇妙な動作に遭遇したことです。プログラムを実行した後、出力ファイルに正確に が含まれていることを確認しました。aąbcćdこれには、明らかに前述の文字が含まれていますć

ただし、回線std::cout << buf.find(L'ć')は期待どおりに動作しませんでした。4のメモリ レイアウトを考えると、 の出力が得られるとはstd::wstring思っていませんでしstd::string::nposた。この方法で通常の ASCII 文字を見つけることは成功することに注意してください。

要約すると、上記のコードは入力ファイルの最初の行を出力ファイルに正しくコピーしますが、コピーするデータを保持する役割を担う文字列 (npos を返す) 内の文字を見つけることができません。どうしてこんなことに?findここで が失敗する原因は何ですか?

注: どちらのファイルも、Windows では UTF-8 でエンコードされています。

0 投票する
0 に答える
43 参照

c++ - wstring と wchar_t を使用するときのテンプレートの問題

文字列をベクトルに変換する関数を作成しました。wstrings と wchar_t も使用したいので、型のテンプレートを作成したいと思います。それらはcsvファイルにあるためです。これが私のファイルです...

main.cpp

vector_to_string.cpp

翻訳.csv

The problem is in vector_to_string () but I can't find the problem, and I get this syntax error ...

What is the problem and how can I best solve it?