1 5 6 3 7 printf 输出字符串

小夏 科技 更新 2024-01-29

/*--

003 编程大师 Win32 API 日常练习。

第三个示例是 SprintFc:控制台程序--- printf 输出字符串。

spritf 的函数。

c) www.bcdaren.com 编码高手。

#include

在控制台中使用 printf

int main()

int a= 12;

char szbuffer[100];

sprintf_s(szbuffer,100,"hello %d", a);格式化内存中的字符串。

printf(szbuffer);在控制台中使用 printf

puts(szbuffer);另一种输出方式。

return 0;

SPRITF 的函数:格式化数据并将其输出到字符串中。 Sprintfs 检查格式化字符串中格式化字符的有效性,并且 sprintfs 携带接收格式化字符串的缓冲区的大小。

sprintf s 函数不是将格式化的结果写入标准输出,而是将其存储在 szbuffer 缓冲区中。

函数原型:int sprintf s(

char *buffer,指向要写入的字符串的缓冲区的 char 类型指针。

size t sizeOfBuffer,缓冲区的大小。

const char *format [,格式化字符串。

argument] .可变参数列表,可以是任何类型的数据。

printf ("the sum of %i and %i is %i", 5, 3, 5+3) ;

该函数等效于:

char szbuffer [100] ;

sprintf (szbuffer, 100,"the sum of %i and %i is %i", 5, 3, 5+3) ;

puts (szbuffer) ;

结果:hello 12

hello 12

注意]这是一个控制台程序,请注意开关。

004 编程大师 Win32 API 日常练习。

第四个例子是 sprintfC:Sprintf S-ASCII 版本用于 Windows。

messagebox一个函数。

c) www.bcdaren.com 编码高手。

#include

包括 ANSI 字符。

*程序条目**

ASCII 代码版。

int winapi winmain(hinstance instance, hinstance hprevinstance, pstr szcmdline, int icmdshow)

int a = 12;

char szbuffer[100];

格式化字符串被存储,标准 C 版本。

sprintf_s(szbuffer, 100, "hello %d", a);

带 A 的 ASCII 版本

messagebox(null, szbuffer, "hello ascii", mb_ok | mb_iconinformation);

return 0;

messagebox一个函数。

winuserapi

intwinapi

messageboxa(

在 opt hwnd hwnd 中,它所属的窗口。

在 opt lpcstr lptext 中,文本消息。

在 opt lpcstr lpcaption 中,标题。

in_ uint utype);按钮、图标样式。

结果:图 1-31。

图1-31 备注]向 Windows 添加头文件h。

005编程大师Win32 API日常练习。

第 5 个示例是 SprintFC:在 Windows 中使用 swprintf s-unicode 版本。

MessageBoxW 函数。

c) www.bcdaren.com 编码高手。

#include

#include

Unicode 版本。

*程序条目**

int winapi winmain(hinstance hinstance, hinstance hprevinstance, pstr szcmdline, int icmdshow)

int a = 12;

wchar_t szbuffer[100]; //wchar

在内存中格式化字符串,标准 C 版本。

swprintf_s(szbuffer, 100, l"hello %d", a);

messagebox(null, szbuffer, l"hello unicode",mb_ok | mb_iconinformation);用w

return 0;

注意:转到“定义”进行查看。

winuserapi

intwinapi

messageboxw(

in_opt_ hwnd hwnd,in_opt_ lpcwstr lptext,in_opt_ lpcwstr lpcaption,in_ uint utype);

结果:图 1-32。

图1-32006 Programming Expert的Win32 API每天都在练习。

第 6 个示例是 SprintFc:在 Windows 中使用 sprintf-generic 版本。

messagebox 函数。

stprintf 的宏。

tchar.h 头文件。

c) www.bcdaren.com 编码高手。

#include

#include

包括 Microsoft 提供的与 Unicode 宽字符版函数和 ASCII 字符函数兼容的头文件。

#include

通用版。 *程序条目**

int winapi winmain(hinstance hinstance, hinstance hprevinstance, pstr szcmdline, int icmdshow)

int a = 12;

tchar szbuffer[100]; //wchar

stprintf_s(szbuffer, 100, text("hello %d"), a);在内存中格式化字符串,Microsoft 版本的 tcharh.

messagebox(null, szbuffer, text("hello tchar"), mb_ok |

mb_iconinformation);

return 0;

MessageBox 函数:右键单击 - 转到定义。

#ifdef unicode

#define messagebox messageboxw

#else#define messagebox messageboxa

#endif // !unicode

stprintf 的宏。

#define _stprintf_s swprintf_s

注意:SwprintF S 不是 C 语言的标准库函数,而是 SprintF S 的宽字符版本,因此无需参考 C 标准库头文件 stdioh

tchar.H 头文件:Microsoft 提供的与 Unicode 宽字符版函数和 ASCII 字符函数兼容的头文件。

tchar.H 头文件是 ANSI C 标准的一部分,其中定义的每个函数和宏都有一个下划线前缀。

tchar.h 为需要字符串参数的常见运行时函数(例如 printf、tcslen)提供了一系列替代名称。

这些函数称为泛型函数名称,它们可以引用函数的 Unicode 和非 Unicode 版本。

如果定义了名为 Unicode 的标识符和 tcharh 头文件包含在程序中,tcslen 定义为 wcslen:

#define _tcslen wcslen

如果未定义 unicoe,则 tcslen 定义为 strlen:

#define _tcslen strlen

等等,tcharH 还使用名为 tchar 的新数据类型解决了双字符数据类型的问题。 如果定义了 -unicode,则 tchar 为 wchar t:

typedef wchar_t tchar;

否则。 typedef char tchar;

如果定义了 Unicode 标识符,则按如下方式定义名为 t 的宏:

#define _t(x) l##x

使字母 l 和宏参数连接在一起,如果宏参数是"hello!",则 l x 为 l"hello!"。

如果未定义 Unicode 标识符,则 T 宏仅定义为:

#define _t(x) x

这两个宏的定义是相同的。

#define -t(x) _t(x)

#define _text(x) _t(x)

要使用的 Win32 控制台程序取决于所需的简洁程度或详细信息级别。 基本上,字符串文字必须按以下方式定义:在 t 或 text 宏中:

text("hello!")

如果定义了 Unicode 标识符,则字符串将解释为宽字符,如果未定义,则解释为 8 位字符串。

结果:图 1-33。

图1-33 备注]添加头文件 tcharh。

定义一个声明参数数组的 va list 指针变量。

va_list parglist ;

pargs,数组初始化为“...”里面有什么。

parglist = (char *)szformat + sizeof (szformat) ;

va_start (parglist, szformat) ;返回参数列表中的第一个参数。

第二个参数是缓冲区大小,第三个参数是 tchar 的数量。

vsnwprintf_s( szbuffer, 1024,sizeof (szbuffer) / sizeof (tchar),szformat, parglist) ;

释放 pargs 数组。

va_end (parglist) ;

return messagebox (null, szbuffer, szcaption, 0) ;通过窗口显示。

int winapi winmain ( hinstance hinstance, hinstance hprevinstance,pstr szcmdline, int icmdshow)

int cxscreen, cyscreen;

屏幕宽度 - 检索指定的系统指标或系统配置设置,第 4 章以进一步了解 习。

cxscreen = getsystemmetrics(sm_cxscreen);

cyscreen = getsystemmetrics(sm_cyscreen);屏幕高度。

messageboxprintf(text("screensize"),text("the screen is %i pixels wide by %i pixels high."),cxscreen, cyscreen);

return 0;

vsnwprintf s 函数:宽字符 vsprintf --c 标准库函数。 使用参数列表将格式化输出发送到字符串。

int vsprintf(

char *str,指向字符数组的指针。

const char *format, string, 包含要写入字符串 str 的文本。

VA list arg 表示可变参数的列表。

getSystemMetrics 函数:检索指定的系统指标或系统配置设置---以像素为单位。

int getsystemmetrics(

int nindex 要检索的系统指标或配置设置。

结果:图 1-34。

注意]添加头文件 stdioh。

图1-34

相似文章

    《海明谈财务管理》第37期 投资生存之战

    我记得很多年前读过一本书,大致意思是投资是一场战争。如果你想保证你的钱安全,你必须战斗。和不确定性。和通货膨胀。在实际投资过程中确实存在一些相似的特征。因为当我们做得好时,我们的资金就会增加。当我们做得不好时,我们的钱就会减少。市场上仍然有很多人想通过交易获利。的确,一些投资者通过交易获得了收益。然...

    翻开书,福气 推荐第37期 易与范推荐书《中华文化的根本精神》。

    书熏香开福 这本书的开篇是有福的。推荐问题 .book中华文化的根本精神 建筑很凶猛。关于作者 建设精神年月生于杭州,祖籍浙江嵊州。年毕业于上海普光中学,年毕业后考入北京大学哲学系任教。北京大学哲学系与中国研究院教授 博士生导师,北京大学宗教研究所名誉院长,北京大学学术委员会委员。主要著作有 老子道...

    色彩缤纷的 15 6 英寸游戏笔记本电脑,最大单核睿频频率为 5 0GHz

    多彩在游戏笔记本的设计上一直有着独特的路线,这一点在其新一代星星XAT中尤为明显。有别于常见的未来科技或游戏风格外观,这款笔记本融入了民族风元素的设计语言,彰显其深厚的文化底蕴。缤纷江星XAT提供蓝蓝 星光灰 雷霆紫三种颜色供消费者选择。我们手中的星灰色配色方案,机身主色调为灰色,上部经过金属质感处...

    在这里!朗诗西华府156套现房出售真的来了!

    前段时间,关于朗诗西华政府交接的消息开始在大上疯传,引起了广泛的关注和热议。朗诗西华房子是备受追捧的房地产,现在现存的套待售房屋将以拍卖的形式开放,引起了很多人的注意买房人们的关注和期待。自新政策出台以来,许多多年未推出的物业已经解散,成为买房关注的焦点。朗诗西华政府也是其中之一,之前有人注意到过这...

    SA37DM71S4 SA37DRS90L4BE5理化池驱动减速机的立式卧式是什么

    sadms,sadtn,sadrslbe,mtjaf y p . M ASADRSSBE 和 SA BMG HF TF 比率,S 比率 ,.,.,.,.,.等速比。该 S 的速比为 ,.,.,.,.,.等速比。SADMS SADRSLBE 理化池起重机减速机立式卧式摆线针轮减速机多少钱 张 B系列摆...