#include <stdio.h>
#include <iostream>
int main()
{
FILE* oFile=fopen("file","wb");
for(int i = 255; i>=0; i--)
fprintf(oFile,"%c",i);
system("pause");
return 0;
}
现在,“文件”只包含“奇怪”的字符:
.。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。婛塙噗呕剓偑乏䱍䩋䡉䙇䑅䉃䁁㸿㰽㨻㠹㘷㐵㈳〱ⸯⰭ⨫⠩☧␥∣‡ḟᰝᨛ᠙ᘗᐕሓထฏࠉ؇Ѕȃp
对我来说有趣的是,使用控制台流,一切都很好。
#include <stdio.h>
#include <iostream>
int main()
{
for(int i = 255; i>=0; i--)
printf("%c",i);
system("pause");
return 0;
}
问题是:为什么输出文件中没有“拉丁”字符?即使在从 UCS-2 little endian(为什么它被自动选择?)转换为 notepad++ 中的 ascii 之后:
ﳽ﫻ď±î»Żîłî««îŁ©î›§î“Ąî‹Łîˇí»źíłťí«›íŁ™í›—í“•í‹“í'ě»ŹěłŤě« ‹ěŁ‰ě›‡ě“…ě‹ě뺿벽못뢹뚷ë'µëŠłë‚±ęşŻę˛ęŞ«ę˘©ęš§ę'ĄęŠŁę‚ˇéşźé˛ťéŞ›é˘™éš—é'• 銓é‚'躏貍誋袉蚇č'…čŠč‚繿籽穻硹癷ç'µç‰łç±ćąŻć±ć©«ćˇ©ć™§ć'Ąć‰Łćˇĺąźĺ± ťĺ©›ĺˇ™ĺ™—ĺ'•ĺ‰“ĺ'乏䱍䩋䡉䙇ä'...ä‰ä㸿㰽㨻㠹ă·ăµăłă€±â¸Żâ°â ¨«â ©â§âĄâŁâ€ˇá¸źá°ťá¨›á ™á—á•á“á€'ŕ¸Źŕ°Ťŕ¨‹ŕ ‰Ř‡Đ...Č</p>