文字列をファイルに書き出し
何通りか手段がありますが、基本的な C 言語をベースに文字列をファイル出力する例をつくりました。
「include」の一覧に を追記
#include <stdio.h>
AnsiString を経由してファイルに文字列を出力
const UnicodeString inputStr = "あああ"; FILE *file = fopen("c:\\temp\\test.txt", "w+"); { // Unicode -> Ansi const AnsiString ansistr = AnsiString(inputStr); char *buf = new char[ansistr.Length() + 1]; strcpy(buf, ansistr.c_str()); fwrite(buf, sizeof(char), strlen(buf), file); delete[]buf; } fflush(file); fclose(file);
AnsiString#c_str() が戻すポインタは しばらくは安泰?
UnicodeString を AnsiString に変換した際、該当の AnsiString オブジェクトに変化を与えない限りは c_str() メソッドで戻される文字配列は 変化ないことがわかりました (ソースコードおよびマニュアルにおいて確認実施)。このため、記述的には new や delete を省略して記述することは可能なようです。(もっと複雑な場合には、やはり new char や delete の利用が必要なようです)
- ☆が、この認識は間違いの可能性あり。もう少し調べてみます。
const UnicodeString inputStr = "あああ"; FILE *file = fopen("c:\\temp\\test12.txt", "w+"); { // Unicode -> Ansi const AnsiString ansistr = AnsiString(inputStr); fwrite(ansistr.c_str(), sizeof(char), strlen(ansistr.c_str()), file); } fflush(file); fclose(file);