[問題] Pipe+Unicode的問題

看板C_and_CPP (C/C++)作者 (.......)時間15年前 (2011/02/20 02:32), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
小弟心血來潮,想寫個能印出資料夾內所有檔案的小程式 拜過GOOGLE大神後,發現M$(WIN7)可以用tree及dir指令來解決 這兩個指令可以在cmd上顯示UNICODE 但輸出到檔案(ex: tree > test.txt)卻有UNICODE上的問題 據我的想法,是在寫入時沒有用UNICODE寫入 所以我的邏輯為: 抓取tree指令的output, 然後寫個小程式以UNICODE方式寫入檔案 因此有Pipe+UNICODE的需求! 以下我寫的CODE為第一段,抓取tree指令的OUTPUT並show在CMD 目前的問題為:執行程式後,CMD上無法顯示日文字 但直接在CMD下指令卻可以正確顯示日文 感覺是做pipe途中出錯,debug很久仍無法解決 所以想請教板上先進們的想法來解決此問題 在此先謝過各位先進!!! #include "stdafx.h" #include <windows.h> #include <stdio.h> #include <process.h> #include <wchar.h> int main(int argc, TCHAR *argv[]) { wchar_t psBuffer[128]; FILE *pPipe, *fp=_wfopen(L"RecordInfo_API.xml", L"wb+, ccs=UNICODE"); if( (pPipe = _wpopen( L"tree", L"rb" )) == NULL ) exit( 1 ); while(fgetws(psBuffer, sizeof(wchar_t), pPipe)) { wprintf( L"%s", psBuffer ); } _pclose( pPipe ); fclose(fp); //system("PAUSE"); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.235.196.184

02/20 02:50, , 1F
#1CrM-xz8 這篇有幫助嗎?
02/20 02:50, 1F

02/20 14:52, , 2F
閱讀中,感謝您!!!
02/20 14:52, 2F
文章代碼(AID): #1DO0pKJg (C_and_CPP)
文章代碼(AID): #1DO0pKJg (C_and_CPP)