[問題] Pipe+Unicode的問題
小弟心血來潮,想寫個能印出資料夾內所有檔案的小程式
拜過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
02/20 02:50, 1F
→
02/20 14:52, , 2F
02/20 14:52, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章