将数字转换成图片的粗略方法

qianluoxun 2017-08-15 05:08:11
#include <stdio.h>
#include <stdlib.h>
#define ROW 20
#define COL 30

int main (void)
{
FILE *fp;
int origin[ROW][COL];
char now[ROW][COL+1];
const char trans[10+1]=" .':~*=|%#";
int i,j;
int temp;
if((fp=fopen("number.txt","r+"))==NULL)
{
fputs("cannot open the file .\n",stderr);
exit(EXIT_FAILURE);
}
for(i=0;i<ROW;i++)
for(j=0;j<COL;j++)
fscanf(fp,"%d",&origin[i][j]);
for(i=0;i<ROW;i++)
{
for(j=0;j<COL;j++)
{
temp=origin[i][j];
now[i][j]=trans[temp];
}
now[i][j]='\0';
}
rewind(fp);
for(i=0;i<ROW;i++)
{
fputs(now[i],fp);
putc('\n',fp);
}
if(fclose(fp)!=0)
fputs("error in closing files.\n",stderr);
return 0;
}


原图是

执行完毕后是


这是为啥???
...全文
379 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qianluoxun 2017-08-15
  • 打赏
  • 举报
回复
大佬能麻烦解释解释么。。 菜鸡表示看不懂
赵4老师 2017-08-15
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#define ROW 20
#define COL 30

int main (void)
{
	FILE *fp;
    HANDLE fh;
	int	origin[ROW][COL];
	char now[ROW][COL+1];
	const char trans[10+1]=" .':~*=|%#";
	int	i,j;
	int	temp;
	if((fp=fopen("number.txt","rb+"))==NULL)
	{
		fputs("cannot open the file .\n",stderr);
		exit(EXIT_FAILURE);
	}
	for(i=0;i<ROW;i++)
		for(j=0;j<COL;j++)
			fscanf(fp,"%d",&origin[i][j]);
	for(i=0;i<ROW;i++)
	{
		for(j=0;j<COL;j++)
		{
			temp=origin[i][j];
			now[i][j]=trans[temp];
		}
		now[i][j]='\0';
	}
	rewind(fp);
	for(i=0;i<ROW;i++)
	{
		fwrite((void *)&now[i][0],COL,1,fp);
		putc('\r',fp);
		putc('\n',fp);
	}
    fh=(HANDLE)_get_osfhandle(fileno(fp));
    SetEndOfFile(fh);
	if(fclose(fp)!=0)
		fputs("error in closing files.\n",stderr);
	return 0;
}
qianluoxun 2017-08-15
  • 打赏
  • 举报
回复
是换行符的问题吗??

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧