如何将全局变量插入 snprinf 语句的中间?
How do you insert a global variable into the middle of a snprinf statement?
我有一个全局变量
int CYCLE0;
我想插入一个很长的 snprintf 语句的中间。
snprintf(temp, 400,
"<html>\
<head>\
<meta http-equiv='refresh' content='5'/>\
<title>ESP32 Demo</title>\
<style>\
body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }\
</style>\
</head>\
<body>\
<h2>Turn on</h2> \n\
<p>cycled "CYCLE0" times</p> \n\"
);
收到错误:
unable to find string literal operator 'operator""CYCLE0' with 'const char [1118]', 'unsigned int' arguments
如何将整型变量插入到 snprintf 语句的中间?
这是 snprintf
的直接应用。但是,与往常一样,您必须使用 %
说明符来插入内容。试试这个:
snprintf(temp, 400,
"<html><head>"
"<meta http-equiv='refresh' content='5'/>"
"<title>ESP32 Demo</title>"
"<style>"
"body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }"
"</style></head>"
"<body>"
"<h2>Turn on</h2>\n"
"<p>cycled %d times</p>\n",
CYCLE0);
我使用字符串常量连接将长字符串拆分为多行,因为我认为这比您在问题中使用的反斜杠延续更方便、更易读。
我有一个全局变量
int CYCLE0;
我想插入一个很长的 snprintf 语句的中间。
snprintf(temp, 400,
"<html>\
<head>\
<meta http-equiv='refresh' content='5'/>\
<title>ESP32 Demo</title>\
<style>\
body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }\
</style>\
</head>\
<body>\
<h2>Turn on</h2> \n\
<p>cycled "CYCLE0" times</p> \n\"
);
收到错误:
unable to find string literal operator 'operator""CYCLE0' with 'const char [1118]', 'unsigned int' arguments
如何将整型变量插入到 snprintf 语句的中间?
这是 snprintf
的直接应用。但是,与往常一样,您必须使用 %
说明符来插入内容。试试这个:
snprintf(temp, 400,
"<html><head>"
"<meta http-equiv='refresh' content='5'/>"
"<title>ESP32 Demo</title>"
"<style>"
"body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }"
"</style></head>"
"<body>"
"<h2>Turn on</h2>\n"
"<p>cycled %d times</p>\n",
CYCLE0);
我使用字符串常量连接将长字符串拆分为多行,因为我认为这比您在问题中使用的反斜杠延续更方便、更易读。