代码如下:
#include<stdio.h>
int main()
{
FILE * fp;
fp = fopen("file.txt","w");
fprintf(fp,"%-8d%-8d%-8dn",53,263,15364);
fprintf(fp,"%-8d%-8d%-8dn",643,2643,64352);
fprintf(fp,"%-8d%-8d%-8dn",4234,263,34523);
fprintf(fp,"%-8d%-8d%-8dn",54,53252,5352);
fclose(fp);
return 0;
}
运行结果:

为什么会出现如控制台一样对齐的效果?

原因:这里依旧有源代码%8d的效果,但是在记事本中的微软雅黑是比例字体(变宽字体),所以如果把这个显示字体改成等宽字体如宋体
显示效果如下:

这里小编把文件格式改为word,代码如下
#include<stdio.h>
int main()
{
FILE * fp;
fp = fopen("file.doc","w");//把文件改成word
fprintf(fp,"%-8d%-8d%-8dn",53,263,15364);
fprintf(fp,"%-8d%-8d%-8dn",643,2643,64352);
fprintf(fp,"%-8d%-8d%-8dn",4234,263,34523);
fprintf(fp,"%-8d%-8d%-8dn",54,53252,5352);
fclose(fp);
return 0;
}
此时运行结果为:

这里会有一个误区:不是说微软雅黑是变宽字体吗?
为什么这里感觉是等宽的
解释:这里是因为word中字体较小效果不明显,但选中后明显可以知道它是变宽的

最后
以上就是优秀冰棍最近收集整理的关于关于fprintf对齐效果问题的全部内容,更多相关关于fprintf对齐效果问题内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复