VC txt中的读入中文

想用vc读入一个txt中的中文
就是想用vc读入txt中的中文

第1个回答  2010-08-10
可以像下面这样:
wchar_t wc;
setlocale(LC_ALL,"chinese-simplified");
FILE* fp = _wfopen(L"C:\\中文文件.TXT",L"r");
while(!feof(fp)){
fwscanf(fp,L"%c",&wc);
//wprintf(L"%c",wc);
printf("%C",wc);
}
也有 wcout,wcin,wstring 等一系列用于处理宽字节的类,用法跟往常一样,只是均要先使用 setlocale 函数设置为正确的区域,以上每个类也均有 locale 函数可以使用。
如果以字符串方式读入,可以直接以传统方式读写。
这是C/C++中的做法,如果是VC,还有其他方法,查阅文档即可。
第2个回答  2010-08-10
CString m_Disp ;
char FullName [MAX_PATH] ;
CFile fp;

memset ( FullName , 0 , sizeof ( FullName ) ) ;
sprintf ( FullName , "%s" , "C:\\test.txt" ) ;

if(!(fp.Open(FullName,CFile::modeRead)))
{

return ;
}
fp.SeekToEnd();
unsigned long fplength=fp.GetLength();
char* fpBuff;
fpBuff=new char[fplength+1];
fp.SeekToBegin();
if(fp.Read(fpBuff,fplength)<1)
{
fp.Close();
return;
}
fp.Close();

m_Disp.Format("%s" , fpBuff );
delete fpBuff;

m_Disp 就是你读入的文件内容;
FullName 注意是你的中文文件的绝对路经文件名;
第3个回答  2010-08-23
UINT threadread(PVOID param)
{
int temp;
CBook_readDoc *pthis=(CBook_readDoc*)param;
bool istrue=true;
while(istrue)
{
if (WaitForSingleObject(g_exit.m_hObject,0)==WAIT_OBJECT_0)
{
break;
}
if (WaitForSingleObject(g_buf1.m_hObject,0)==WAIT_OBJECT_0)
{
for(int i=0;i<2000;i++)
{
temp=fgetc(fp);
if (temp==EOF)
{
return 0;
}
buffer1[i]=(char)temp;
}
// memcpy(buffer1,fp,5000);
// AfxMessageBox("读取BUF1");
}
else if (WaitForSingleObject(g_buf2.m_hObject,0)==WAIT_OBJECT_0)
{
for(int i=0;i<2000;i++)
{
temp=fgetc(fp);
if (temp==EOF)
{
return 0;
}
buffer2[i]=temp;
}
// memcpy(buffer2,fp,5000);
// AfxMessageBox("读取BUF2");
}
}
return 0;
}
这是我写的一个线程,操作两个BUFFER读TXT
需要详细的代码,可以给我发邮件 [email protected]本回答被提问者采纳
第4个回答  2010-08-10
给你一个简单的读法例子
Open App.Path & "\adv.ini" For Input As #1
For ipi = 0 To 69
Line Input #1, jp1(ipi)

Next ipi
Close #1
ipi = 0
这个程序是把当前系统目录下的adv.ini配置文件,读入到jpi数组中,记住adv中只有69条记录,你可加入,也可以删除
相似回答
大家正在搜