如何用outtextxy函数在指定位置输出一个变量的值

YanHuangC 2020-02-10 10:25:56
我在visual studio上安装了EasyX,将字符集改成了使用多字节字符集,用sprintf函数将值输入到一个数组里,通过outtextxy函数输出,运行显示未找到相关问题,但是发生了生成错误,求解答
...全文
3716 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
YanHuangC 2020-02-11
  • 打赏
  • 举报
回复
引用 8 楼 apkipa1的回复:
可能的话,请在出现问题时截图或录制动态图并发出来,这样更好解决问题。
好的谢谢!我刚来CDSN
YanHuangC 2020-02-11
  • 打赏
  • 举报
回复
引用 7 楼 與蘤舊縐的回复:
可能就sprintf、_stprintf_s、_stprintf这几个函数的问题了,我自己在vs 2019上用过sprintf,没出问题,不过大半年前了
好的解决了,sprintf将score打印到数组中可能是会有溢出,改为sprintf_s就好啦,应该是这样解释的吧,刚刚只检查了数组,感谢!
apkipa1 2020-02-11
  • 打赏
  • 举报
回复
可能的话,请在出现问题时截图或录制动态图并发出来,这样更好解决问题。
「已注销」 2020-02-11
  • 打赏
  • 举报
回复
可能就sprintf、_stprintf_s、_stprintf这几个函数的问题了,我自己在vs 2019上用过sprintf,没出问题,不过大半年前了
YanHuangC 2020-02-11
  • 打赏
  • 举报
回复
引用 4 楼 與蘤舊縐的回复:
用法上没有问题,不过有可能是你的数字转化为字符串超出了字符数组的范围
扩大了数组范围也是一样的
「已注销」 2020-02-11
  • 打赏
  • 举报
回复 1
以上只是猜测,感觉不会引起生成问题,以下是官方文档,可以参考一下

// 输出数值,先将数字格式化输出为字符串 (VC6)
char s[5];
sprintf(s, "%d", 1024);
outtextxy(10, 60, s);
Copy
// 输出数值 1024,先将数字格式化输出为字符串 (VC2008 / VC2010 / VC2012)
TCHAR s[5];
_stprintf(s, _T("%d"), 1024);		// 高版本 VC 推荐使用 _stprintf_s 函数
outtextxy(10, 60, s);
「已注销」 2020-02-11
  • 打赏
  • 举报
回复
用法上没有问题,不过有可能是你的数字转化为字符串超出了字符数组的范围
YanHuangC 2020-02-11
  • 打赏
  • 举报
回复
#include<stdio.h> #include<graphics.h> int score = 0;//总分 int rank = 0;//等级 //欢迎界面 void welcome(void) { //初始化画布 initgraph(550,660); setbkcolor(BLACK); cleardevice(); //设置窗口标题 HWND window = GetHWnd();//获取窗口 SetWindowText(window, _T("俄罗斯方块 by炎黄c"));//设置窗口标题 //设置文本字体样式 settextstyle(40, 0, _T("微软雅黑"));/tfont无法使用,需要用setteststyle代替 setcolor(WHITE); outtextxy(205, 200, _T("俄罗斯方块")); settextstyle(22, 0, _T("楷体")); setcolor(BLUE); outtextxy(175, 300, _T("编程,从俄罗斯方块开始")); Sleep(3000);//暂停3000毫秒,3秒钟 } //初始化游戏场景 void initGameScene(void) { char str[16]; //清除屏幕 cleardevice(); rectangle(27,27,336,635); rectangle(29,29,334,633); rectangle(370,50,515,195); settextstyle(25, 0, _T("楷体")); setcolor(WHITE); outtextxy(405, 215, _T("下一个:")); settextstyle(25, 0, _T("楷体")); setcolor(RED); outtextxy(405, 280, _T("分数:")); settextstyle(25, 0, _T("楷体")); setcolor(RED); outtextxy(405, 375, _T("等级:")); sprintf(str, "%d", score); outtextxy(415, 310, str); } int main(void) { welcome(); initGameScene(); system("pause"); closegraph(); return 0; }
寻开心 2020-02-11
  • 打赏
  • 举报
回复
#include <wchar.h>
int swprintf(wchar_t *buffer, const wchar_t *format, ...);

int main( void )
{
wchar_t buf[100];
int len = swprintf( buf, L"%s", L"Hello world" );
printf( "wrote %d characters\n", len );
len = swprintf( buf, L"%s", L"Hello\xffff world" );
// swprintf fails because string contains WEOF (\xffff)
printf( "wrote %d characters\n", len );
}
「已注销」 2020-02-11
  • 打赏
  • 举报
回复
先sprintf格式化字符串,再用outtextxy输出,应当不会出问题,请贴代码

70,027

社区成员

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

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