我有以下代码,如果我将"W“改为"Wb”,它的工作原理是相同的,为什么?
void wrte (){
//tpeDta roundLotSze[] = {65,66,67,68};
tpeDta roundLotSze[] = {66,65,6767,75};
FILE * fle = fopen(".//bse//fleNmber.dat", "w");
fwrite(&roundLotSze,sizeof(roundLotSze),1,fle);
fclose(fle);
}看起来,fopen的参数不起作用。只要使用这些函数,就会改变写入数据和输出的行为。
这种行为背后的原因是什么?
发布于 2022-05-16 15:23:12
区别在于换行符的读写方式。
在Linux或其他类似UNIX的系统上,"w"和"wb"没有区别。在使用"w"的Windows上,写入值为10的字节将导致写入值13和10的两个字节。
这是因为Windows上的换行符由回车(ASCII 13)和linefeed (ASCII 10)表示,而在类似UNIX的系统中,换行符只是linefeed。
https://stackoverflow.com/questions/72261561
复制相似问题