1。有人见过这种情况吗?turbo c2.0
error:character constant too long in function main
出错行为:ch!=CNTL_Z,CNTL_Z为宏,值为'/032'2.有关于文件读写缓冲区问题
用read和write读文件,假设将缓冲区设为512,而文件只有100字节,则用write写入另外一个文件时就会在尾部有乱码,如何解决?
如要单个字节地读,则如果是大写字母,因其占两个字节,以至于读不出来,程序如下:
#include <stdio.h>
#include <fcntl.h>
#define SIZE 512
main(argc,argv)
int argc;
char** argv;
{
char ch[SIZE];
int fold;
int fnew; if((fold=open("kate.txt","r"))<0)
{
printf("can't open the source file!");
exit(1);
} if((fnew=open("kate2.txt","w"))<0)
{
printf("can't open the destinate file!");
exit(1);
} while(read(fold,&ch,512)>0)
{
write(fnew,&ch,512);
} close(fnew);
close(fold);
}
error:character constant too long in function main
出错行为:ch!=CNTL_Z,CNTL_Z为宏,值为'/032'2.有关于文件读写缓冲区问题
用read和write读文件,假设将缓冲区设为512,而文件只有100字节,则用write写入另外一个文件时就会在尾部有乱码,如何解决?
如要单个字节地读,则如果是大写字母,因其占两个字节,以至于读不出来,程序如下:
#include <stdio.h>
#include <fcntl.h>
#define SIZE 512
main(argc,argv)
int argc;
char** argv;
{
char ch[SIZE];
int fold;
int fnew; if((fold=open("kate.txt","r"))<0)
{
printf("can't open the source file!");
exit(1);
} if((fnew=open("kate2.txt","w"))<0)
{
printf("can't open the destinate file!");
exit(1);
} while(read(fold,&ch,512)>0)
{
write(fnew,&ch,512);
} close(fnew);
close(fold);
}
解决方案 »
- BrowseCallbackProc里的SendMessage(hwnd,BFFM_SETSELECTION,TRUE,(LPARAM)"E:\\");问题
- 怎样发消息通知按钮?
- C的困惑,请大家过来看看,我在现等待
- NetCapture 网络截包源代码发送(SNIFF的window2000实现)
- 求购一段程序
- 大家好,请问VC2005和VC2008能不能够只安装VC部分?
- vc++编写ASP组件DLL文件,具体步骤是怎么样
- 急需关于Visual SourceSafe的使用资料~~~
- 一个编译错误,急死我了!!!
- fileOpen的实现方法?
- LINK : fatal error LNK1104: cannot open file "STRLIB.lib"是什么错误?
- 请问如何在CDialogbar中使用位图按钮??象工具栏上的按钮一样的!!!
while(read(fold,ch,512)>0)
{
write(fnew,ch,512);
}
ASCII码只占一个字节,而且小于128
2、while(read(fold,&ch,512)>0)
{
write(fnew,&ch,512);
}
应改为:
while(read(fold,ch,512)>0)
{
write(fnew,ch,512);
}
{
write(fnew,&ch,512);
}
应改为:
while(read(fold,ch,512)>0)
{
write(fnew,ch,512);
memset(ch,0,sizeof(ch));
}
其实read()函数返回了实际读入的字符个数,而你的write 函数可以依此进行
写入操作,避免了写入乱码!!!!