fwprintfでテキストファイルに表示されないのですが。
void inEditString(TCHAR listboxstr[256][256])
{
int strcount=0,count2=0,count3=0,flag=0;
TCHAR editstr[MAX_ST[/url];
TCHAR listboxstrbuffer[256][256];
GetWindowText(editbox2,editstr,256);
fp=_wfopen(_T("Listbox2.txt"),_T("r+"));
if(fp==NULL)
{
MessageBox(hWnd,_T("ファイルが開きません。"),_T("エラー"),MB_OK);
}
while(fwscanf(fp,_T("%s"),listboxstr[strcount])!=EOF)
{
strcount++;
}
while(count2<(strcount+1))
{
if(flag==0)
{
if(wcscmp(editstr,listboxstr[count3])>=NULL)
wcscpy(listboxstrbuffer[count2],editstr);
count2++;
flag=1;
}
wcscpy(listboxstrbuffer[count2],listboxstr[count3]);
count2++;
count3++;
}
fclose(fp);
fp=_wfopen(_T("Listbox2.txt"),_T("w"));
if(fp==NULL)
{
MessageBox(hWnd,_T("ファイルが開きません。"),_T("エラー"),MB_OK);
}
strcount=0;
while(strcount<count2)
{
fwprintf(fp,_T("%s"),listboxstrbuffer[strcount]);
strcount++;
}
}
なのですが、変な変数名がありますが気にしないでください、
ブレイクポイントをfwprintf(fp,_T("%s"),listboxstrbuffer[strcount]);
の所にやったのですが、listboxstrbuffer[strcount]の所を表示させたのですが、
文字列は入っているのにそして再実行するとテキストファイルに表示されません。
なぜでしょうか?
fwrintfでテキストファイルに表示するには
Re:fwrintfでテキストファイルに表示するには
fwprintfの戻り値を確認してみてはどうでしょう?
もし戻り値が0より大きいならば、テキストファイルをバイナリエディタで
開いてみてはどうでしょうか?
もし戻り値が0より大きいならば、テキストファイルをバイナリエディタで
開いてみてはどうでしょうか?
Re:fwrintfでテキストファイルに表示するには
たかぎさん朝早くに回答ありがとうございます。
処理系はVC++2005です。
ローケルとは何でしょうか?
勉強不足ですみません。
gazuさん朝早くに回答ありいがとうございます。
テキストファイルで開いて見ましたが何も書かれていませんでした。
_wfopenをバイナリエディタに設定して見ましたが共有違反と書かれ開けませんでした。
なぜでしょうか?
処理系はVC++2005です。
ローケルとは何でしょうか?
勉強不足ですみません。
gazuさん朝早くに回答ありいがとうございます。
テキストファイルで開いて見ましたが何も書かれていませんでした。
_wfopenをバイナリエディタに設定して見ましたが共有違反と書かれ開けませんでした。
なぜでしょうか?
Re:fwrintfでテキストファイルに表示するには
すみません。できました。
_wfopenをバイナリエディタに設定して見ましたがちゃんと表示されました。
ただプログラム終了しないと書き込まれません。
なぜでしょうか?
またファイルエディタでは開けないのでしょうか?
_wfopenをバイナリエディタに設定して見ましたがちゃんと表示されました。
ただプログラム終了しないと書き込まれません。
なぜでしょうか?
またファイルエディタでは開けないのでしょうか?
Re:fwrintfでテキストファイルに表示するには
度々すみません。バイナリで書き込んで終了して
バイナリエディタで再度開くと文字化けしてでます。(listbox2.txtで開き直すと文字化けします。)
バイナリエディタで再度開くと文字化けしてでます。(listbox2.txtで開き直すと文字化けします。)
Re:fwrintfでテキストファイルに表示するには
> fwprintfでテキストファイルに表示されないのですが。
> 文字列は入っているのにそして再実行するとテキストファイルに表示されません。
> _wfopenをバイナリエディタに設定して見ましたが共有違反と書かれ開けませんでした。
> _wfopenをバイナリエディタに設定して見ましたがちゃんと表示されました。
> 度々すみません。バイナリで書き込んで終了して
> バイナリエディタで再度開くと文字化けしてでます。
> (listbox2.txtで開き直すと文字化けします。)
落ち着いて何をしたいのか説明してください。正しい日本語で。
相手に伝わるかどうかを必ず読み返してから投稿してください。
UNICODEでテキストファイルに書き込みたい、ということですか?
> 文字列は入っているのにそして再実行するとテキストファイルに表示されません。
> _wfopenをバイナリエディタに設定して見ましたが共有違反と書かれ開けませんでした。
> _wfopenをバイナリエディタに設定して見ましたがちゃんと表示されました。
> 度々すみません。バイナリで書き込んで終了して
> バイナリエディタで再度開くと文字化けしてでます。
> (listbox2.txtで開き直すと文字化けします。)
落ち着いて何をしたいのか説明してください。正しい日本語で。
相手に伝わるかどうかを必ず読み返してから投稿してください。
UNICODEでテキストファイルに書き込みたい、ということですか?
Re:fwrintfでテキストファイルに表示するには
返信ありがとうございます。
>UNICODEでテキストファイルに書き込みたい、ということですか?
はい。そうです。
_wfopenをバイナリエディタ各(r+b)と(w+b)と変更しましたが
文字列がテキストファイルに書き込みされません。ファイルエディタとバイナリエディタ
どちらともなんですが、実行したあと、サイズを見ると1kbyte使っています。
このテキストファイル(rとw)のバイナリエディタで確認したら機械語0D 0A
でバイナリでやったファイル(r+bとw+b)をバイナリエディタで認したら機械語で0A 00だけ
表示されます。
>UNICODEでテキストファイルに書き込みたい、ということですか?
はい。そうです。
_wfopenをバイナリエディタ各(r+b)と(w+b)と変更しましたが
文字列がテキストファイルに書き込みされません。ファイルエディタとバイナリエディタ
どちらともなんですが、実行したあと、サイズを見ると1kbyte使っています。
このテキストファイル(rとw)のバイナリエディタで確認したら機械語0D 0A
でバイナリでやったファイル(r+bとw+b)をバイナリエディタで認したら機械語で0A 00だけ
表示されます。
Re:fwrintfでテキストファイルに表示するには
色々勘違いしているみたいですね。
次のコードを実行できますか?
私の環境では正常に書き込めますが。
次のコードを実行できますか?
私の環境では正常に書き込めますが。
#include <stdio.h> #include <locale.h> int main() { _wsetlocale(LC_ALL, L""); FILE *fp = _wfopen(L"test.txt", L"w"); fwprintf(fp, L"てすと"); fclose(fp); return 0; }