TCHAR finalpath[MAX_PATH];
GetCurrentDirectory(MAX_PATH,finalpath);
TCHAR filename[] = TEXT("\\lista.txt");
wcscat(finalpath,filename);
wprintf(L"List will be saved to %s", finalpath);
だから、これは基本的にfinalpathは確かである私を確認し、C:\ somepath \ lista.txt_wfreopenはc:/path/file.txtでは動作しますが、c: path file.txtでは動作しませんか?
しかし_wfreopen(TEXT(finalpath),TEXT("w"),stdout);
私はちょうど
_wfreopen(TEXT("c:/somepath/lista.txt"),TEXT("w"),stdout);
すべてにそれを変更する場合は、正常に動作し、どうして私はfinalpath argを受け入れることができますか?
ありがとうございました
_wfreopen(finalpath,TEXT("w"),stdout);
を試してみてください。 'filename'文字列を追加する前にバックスラッシュを追加するには、追加の' wcscat() '呼び出しが必要です。 – thkala@thkala: 'filename'には先頭にバックスラッシュがあります。さらに、この問題は 'wprintf'出力に現れます。 –
ところで:コードがANSIとUnicodeの両方で動作するようにするには、 '_tcscat'、' _tprintf'と '_tfreopen'が必要です。 –