比较奇怪的二进制读写问题?
我的测试程序中单步调试,明明写了四次,输出结果也四次,但是输出结果却多了一个字节不知什么原因。
1.Bin:
0C 94 7D 0A
test.Bin:
0C 94 7D 0D 0A
void main()
{
ifstream fin( "c:\\1.bin " );
ofstream fout( "c:\\test.bin ", ios::app );
char ch;
int num = 0;
int index = 0;
while( fin.get( ch ) )
{
index ++;
num = (uchar)ch;
fout.write( (char*)&num, 1);
}
cout < < index < < endl;
fin.close();
fout.close();
}
真实怪事多多。
希望大家指点一下,谢谢!!
[解决办法]
ifstream fin( "c:\\1.bin ", ios_base::binary);
ofstream fout( "c:\\test.bin ", ios::app | ios_base::binary );
C时代就应该知道的基本知识了。
[解决办法]
0d 0a
回车
0a
回车
UNIX和dos的回车符不一样