printf相关内容
我似乎无法弄清楚为什么某些 printf 库函数会从 libc_nano.a 链接到我的代码中,即使我从未使用过任何 printf.它窃取了至少 2K 的宝贵闪存空间.我可以在链接器映射文件中看到 _printf_i、_vfprintf_r、_vfiprintf_r 等部分. 我试过了 Wl,--exclude-libs 选项 链接描述文件中的EXCLUDE_FILE(..)
..
我正在为 SAM3N arm cortex-M3 微控制器编写 C 程序.当我尝试打印浮点数时,它只打印“f".示例:printf("%f",43.12); 仅打印 f,而不是 43.12. 但是用整数打印效果很好. 如何启用浮点数的完整打印?我知道编译器默认禁用浮点打印以减少代码大小(即似乎他们链接了缩减版本).另外请注意,makefile中没有使用CFLAGS=-Dprintf=i
..
我正在运行带有 ARM Cortex-M3 (STM32F205) 的裸机嵌入式系统.当我尝试将 snprintf() 与浮点数一起使用时,例如: float f;f = 1.23;snprintf(s, 20, "%5.2f", f); 我将垃圾放入s.格式似乎受到尊重,即垃圾是一个格式良好的字符串,包含数字、小数点和两个尾随数字.但是,如果我重复 snprintf,字符串可能会在两次调用之
..
我是汇编编程的新手,我正在为 ARM 编程.我正在制作一个带有两个子例程的程序:一个在内存中的字节向量上附加字节信息,另一个打印这个向量.向量的第一个地址包含后面的元素数,最多 255 个.当我用 GDB 调试它时,我可以看到“appendbyte"子例程工作正常.但是当谈到“printvector"时,就存在一些问题.首先,寄存器 r1 中加载的元素是错误的(它加载 0,而它应该是 7).然后,
..
printf 如何处理它的参数?我知道在 C# 中我可以使用 params 关键字来做类似的事情,但我无法在 C 中完成? 解决方案 这样的函数被称为可变参数函数.您可以使用 ... 在 C 中声明一个,如下所示: int f(int, ... ); 然后您可以使用 va_start、va_arg 和 va_end 来处理参数列表.下面是一个例子: #include #include
..
我正在尝试编写一个函数,该函数接受可变数量的参数,例如 printf,执行一些操作,然后将变量列表传递给 printf.我不确定如何执行此操作,因为似乎必须将它们推入堆栈. 大概是这样的 http://pastie.org/694844 #include #include void forward_args( const char *format , ... ){va_list ar
..
我有以下用于 Arduino 草图的代码: #include 液晶液晶(12, 11, 5, 4, 3, 2);静态文件 lcdout = {0} ;静态 int lcd_putchar(char ch, FILE* 流){lcd.write(ch) ;返回 (0) ;}无效设置(){lcd.begin(16, 2);fdev_setup_stream (&lcdout, lcd_putchar
..
我有这个 arduino 草图, 炭温度[10];浮动温度 = 10.55;sprintf(温度,“%f F",温度);Serial.println(温度); 温度打印为 ?F 关于如何格式化这个浮点数的任何想法?我需要它是一个字符字符串. 解决方案 由于某些性能原因,%f 未包含在 Arduino 的 sprintf() 实现中.更好的选择是使用 dtostrf() - 您将浮点
..
根据微软关于vsnprintf的文档,至少从 Visual Studio 2003 版起,该函数就是 C(++) 运行时库的一部分. int vsnprintf( char *buffer,//输出的存储位置size_t count,//要写入的最大字符数const char *format,//格式规范va_list argptr )//指向其他参数列表的指针 我问:对于哪些版本的 Visu
..
是否可以像我在下面写的那样编写代码? printf("\n%c%c\n%c",only_one_variable_for_all);printf("%c%c%c\n",only_one_variable_for_all); 我必须在每种情况下以不同的模式打印你能提供任何其他想法吗? 解决方案 不,这是不可能的. 引用C11,章节§7.21.6.1,fprintf()(适用于*pr
..
我希望 printf 在计算字段宽度时识别多字节字符,以便列正确排列...我找不到这个问题的答案,想知道这里是否有人有任何建议,或者一个函数/script 处理这个问题. 这是一个快速而肮脏的例子: printf "## %5s %5s %5s ##\n## %5s %5s %5s ##\n" '' '*' '' '' "•" ''>## * ##>## • ## 显然,我想要结果:
..
当我尝试使用 printf() 函数在 C 中显示 int 时遇到了一些奇怪的问题.这是我正在使用的代码 printf("计算圆周率输入n:");int n_term = 1;printf("n: %d \n", &n_term);scanf("%d", &n_term);printf("n: %d", &n_term); 我意识到有一个问题,因为当我尝试简单地将 n_term 打印回给用户
..
在这个非常基本的程序中,它要求用户输入两个数字,然后程序会将这些数字相加.我想在最后询问用户他/她是否想再次重复该程序或退出该程序!例如,如果他/她按 y 程序将要求用户输入两个数字,否则程序将关闭.怎么做? main(){浮动 x,y,sum;printf("请输入第一个数字:");scanf ("%f",&x);printf("请输入第二个数字:");scanf ("%f",&y);总和=x
..
在这里你可以看到我的源代码: #include int main(){字符你的名字;char yoursex;你的年龄 = 0;printf("嘿,你叫什么名字?\n");printf("我的名字是:");scanf("%s", &你的名字);printf("哦,你好 %s!\n\n", &你的名字);printf("你是男孩还是女孩?:");scanf("%s", & yoursex);pri
..
请帮我看看这个程序的输出.为什么显示结果o/p PRINT 2 8 用于输入 3 4 我认为输出可能因机器而异,但这是如何产生的. #includeint main() {国际我,一;printf("%d",printf("PRINT %d\t",scanf("%d%d,",&i,&a)));返回 1;} 解决方案 我认为您缺少的是,您的一行嵌套函数调用与此代码基本相同: int sca
..
我知道 printf 执行后返回一些非零值 {EDIT:returns no.字符} 现在在这个例子中我使用了多个 printf's 和现在. /* 据我所知 && 的优先级不仅仅是||,*这些逻辑运算符从左到右检查*所以编译器应该来打招呼并打印“你好"然后“很高兴见到你"然后是“嗨"*因为一切都是真的,它应该打印“hola"*但我想知道,为什么这里的输出只有“hie"和“hola"?*/#in
..
我正在尝试发现 printf 的所有功能,并且我已经尝试过: printf("测试:%+*0d", 10, 20); 打印 测试:%+100d 我首先使用标志 +,然后是宽度 * 并重新使用标志 0. 为什么要做这个输出?我故意以一种糟糕的方式使用了 printf(),但我想知道为什么它会显示数字 100? 解决方案 这是因为,您向编译器提供了句法废话,因此编译器可以
..
做什么 fprintf(fp, "%.7le ", data); 是什么意思? 我不知道什么是“%.7le"是意思. 谢谢! 解决方案 .7 是精度,le 是范式. double x = 0.012345678910;printf("%.7lf\n", x);//0.0123457printf("%.7le\n", x);//1.2345679e-02printf("%.
..
当我使用 printf 时, printf("%.2f zł", 20.4); 它回来了 20.40 zł9 但是我想要 20.40 zł 当我使用 sprintf("%.2f zł", 20.4) 时没有问题. zł 是波兰货币符号.当我用“l"替换“ł"时,我仍然有这样的问题,所以看起来这与编码无关. 如何正确使用 printf 作为货币? 解决方案 我明白了.
..
我在用 C 语言打印这个字符串时遇到问题 char *myXMLString =""“"" "" MY_REPLACED_TEXT"" 1511-
..