問題タブ [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.
c++ - std::wstring に存在する wchar_t が見つからない
と で遊んでいるstd::wstring
とstd::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 でエンコードされています。
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?