首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这个有关问题不知道是不是vc2010的一个bug

2012-04-04 
这个问题不知道是不是vc2010的一个bug在做项目的过程中无意中发现的一个问题:很简单的一个小程序,只是为了

这个问题不知道是不是vc2010的一个bug
在做项目的过程中无意中发现的一个问题:很简单的一个小程序,只是为了测试c语言的文件输出功能而已,在VC2010下调试通过,但输出的文本文件为乱码,奇怪的是只要将"%10u"中的数字10改为11、12或任何其它数字,则能正常输出。百思不得其解,望高人解答之。程序如下所示:

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
  int i;
  unsigned int p[10]={999999999, 999999999, 999999999, 999999999, 999999999, 999999999, 999999999, 999999999, 999999999, 999999999};
  FILE *fp;
  if ((fp=fopen(".\\output.txt", "w"))==NULL)
exit(-1);
  for (i=0; i<10; ++i)
fprintf(fp, "%10u", p[i]);
  fclose(fp);
  return 0;
}

[解决办法]
记事本把用"%10u"格式生成的文件按Unicode打开,所以显示乱码。此时打开时选“编码”为ANSI可正常显示。
记事本把用"%11u"格式生成的文件按ANSI打开,所以显示正常。

word、写字板或UE能智能判断文件编码格式,所以没有问题。
[解决办法]

探讨

记事本把用"%10u"格式生成的文件按Unicode打开,所以显示乱码。此时打开时选“编码”为ANSI可正常显示。
记事本把用"%11u"格式生成的文件按ANSI打开,所以显示正常。

word、写字板或UE能智能判断文件编码格式,所以没有问题。

[解决办法]
联通

这个跟当年的联通bug是一样的。
就是在记事本里面打“联通”两个字 Ansi保存。然后再打开就乱码。

编码问题。

热点排行