用回车来判断
英文的ASCII码小于128
英文的ASCII码小于128
解决方案 »
- 求助!DialogBox的显示问题
- 为什么CEdit类中没有SendMessage成员函数?
- 在win32控制平台应用程序中实现消息循环
- media player控件和flash控件同时存在的问题
- 有关图片显示的问题(线程)
- 初学VC请帮忙呀
- 怎么样使一个扩展名不是.exe(其实是exe文件改名的)的程序能够执行??
- VC中怎样改变EDIT和static text控件的字体
- 想在静态文本框中输入带有字母的公式,该怎么办?
- 如果要在wdm 的sources里加入汇编文件(.asm),用build如何编译?
- 有人知道*.day文件格式吗,如何打开???
- 请那为高手帮帮忙,能帮我找到一个关于进程的资料吗?
你可以一直读数据,直到遇见了\r\n,或者\r就停止。
好像监测不到'\r\n'
是否我的写入文件错了。
但是打开我的文件看的时候,
好像没有错误。写入正确的。
是否写入需要加入一些控制的东西。
我用fread(...)读入一些数据到一个buffer 中时候,没有问题。
但是一个字符一个字符的读入就显示是乱码?为何?
请多指教。
{
FILE *stream ;
CHAR buffer3[256]; stream = fopen("F:\\MyEditFile\\Test\\Asctest\\Asctest.txt","r");
fseek(stream,0,SEEK_SET);
CHAR curChar;
int tpNum=0;
curChar=fgetc(stream);
while((curChar !='\0x0D')||(curChar != EOF ))
{
curChar = getc(stream);
buffer3[tpNum++] =curChar;
tpNum++;
if(tpNum==150) break;
}
buffer3[tpNum] ='\0';
// cout<<"content of buffer :"<<buffer3<<endl;
printf("%s",buffer3);
fclose(stream );
return TRUE;
}上面的这段程序有何问题?
为何读不出中文?(显示的全是乱码)
请多指教。
调试一下,检查一下你的文件流,是不是你想要显示的值~~你的while判断的是如果遇到回车就跳出,是吗?
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
#include <memory.h>void main()
{
FILE *stream ;
char buffer3[10240];
char curChar;
int tpNum=0; stream = fopen("D:\\My Document\\追求美眉秘诀.txt","r");
fseek(stream,0,SEEK_SET);
curChar=fgetc(stream);
while((curChar !='\0x0D')&&(curChar != EOF ))
{
buffer3[tpNum++] =curChar;
curChar = fgetc(stream);
if(tpNum==10239)
break;
}
buffer3[tpNum] ='\0';
wchar_t *pwc=(wchar_t*)malloc(10240);
memset(pwc,0,1024);
mbstowcs(pwc, buffer3, 10240 );
wprintf(L"%s",pwc);
free((void*)pwc);
fclose(stream );
return ;
}
运行正确。
何况即使buffer 太小,那么,只有最后 才可能显示乱码吧??
请问一下:
你的处理的办法是把文件一下完全读入,然后,进行操作,对吗???
能否告诉我怎样判断?
就如:在 comingtrue(comingtrue)的程序中 buffer3 中
判断 并找出第二行的位置?
file.Open(fname,CFile::modeRead|CFile::typeText);
file.ReadString(lineString);
while(file.ReadString(lineString))
{
.....
}
很容易啦 !
可直接读取一行。
我最近才看到。
不过多谢各位啦。
curChar=fgetc(stream);
while((curChar !='\0x0D')¦¦(curChar != EOF ))
{
buffer3[tpNum] =curChar;
curChar = getc(stream);
tpNum++;
if(tpNum==150) break;
}
怎么会是[tpNum++]呀
读文件的付值的顺序也错了
呵呵
2.while(tem[i]){
if((tmp[i] & 128 )==1) //是汉字
{
i+=2;
}
else //ascii
{
if(tmp[i]=='\r'){ //假设换行总是\r\n,单个话再加判断
//
//换行
}
i++;
}
}
string line;
int linecount = 1;
for(int count=1;count!=X;count++)
{
getline(in,line,'\n');
}