草庐IT

xil_printf

全部标签

c - 如何将参数 n 传递给 printf ("%nd", some_int);

我们都知道在基于C的语言中,printf("%11d",some_int);表示在11个字符的字段内右对齐,但是如果我想将这里的常量11替换为一个动态变量,我要做什么? 最佳答案 您可以使用*字符在它自己的参数中指定字段宽度:printf("%*d",some_width,some_int); 关于c-如何将参数n传递给printf("%nd",some_int);,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

c - printf 在程序退出时刷新

我很想知道当程序退出时printf()函数的刷新是如何工作的。让我们看下面的代码:intmain(intac,char**av){printf("Hi");return0;}在这种情况下,printf()如何设法将其缓冲区刷新到stdout?我想这与平台有关,所以让我们以Linux为例。它可以使用gcc的__attribute__((dtor))来实现,但是标准库将依赖于编译器。我认为这不是它的工作方式。感谢任何解释或文档链接。谢谢。 最佳答案 C运行时将注册atexit()处理程序以在调用exit()时刷新标准缓冲区。查看此exp

c - 如何在多线程中使用 printf()

我正在实现一个使用不同内核的多线程程序,许多线程同时执行。每个线程都调用printf(),结果不可读。如何使printf()成为原子的,以便一个线程中的printf()调用不会与printf()调用另一个? 最佳答案 POSIX规范POSIX规范包括以下函数:getc_unlocked()getchar_unlocked()putc_unlocked()putchar_unlocked()Versionsofthefunctionsgetc(),getchar(),putc(),andputchar()respectivelynam

c - 如何用printf显示off_t、nlink_t、size_t等特殊类型?

在我的程序中,我统计他们想要的文件并将数据发送过来。statstruct的字段都是特殊类型:structstat{dev_tst_dev;/*IDofdevicecontainingfile*/ino_tst_ino;/*inodenumber*/mode_tst_mode;/*protection*/nlink_tst_nlink;/*numberofhardlinks*/uid_tst_uid;/*userIDofowner*/gid_tst_gid;/*groupIDofowner*/dev_tst_rdev;/*deviceID(ifspecialfile)*/off_tst_

php - PHP 中 printf() 函数的用途是什么?

这似乎是一个非常愚蠢的问题,但是在PHP中存在printf()函数的原因是什么?在我看来,使用echo将获得完全相同的结果,如果您在一行上输出多个变量,您将不会感到困惑(是的,您可以使用%1$s而不是仅仅使用%s,但它仍然会因为声明了几个变量而变得困惑)。我知道您还可以定义变量的类型,而无需在输出字符串之前对其进行修改,但对我来说这似乎不足以保证创建一个函数。也许我错了,也许我遗漏了一些明显的东西,但如果有人能帮助我理解它存在的原因(以便我知道我是否真的应该使用它!),我会很感激。谢谢。 最佳答案 echo是语言结构,printf是

php - 带有数组参数而不是变量的 printf/sprintf

喜欢$args=('var1'=>'abc','var2'=>'def',);$text=sprintf('firstvaris:%1$s,secondoneis:%2$s',$args);基本上$args变量是动态的,我不知道它是否会有任何条目或有多少。文字也是,不知道里面会不会需要替换变量,或者有多少。我怎样才能创建这样的函数,如果像%s%d,%1这样的东西,它会以某种方式提取元素并在文本中替换它们$s等是否存在? 最佳答案 你可能想要vsprintf(). 关于php-带有数组参数

STM32实现将printf重定向到串口的3种方法

STM32实现将printf重定向到串口的3种方法目录STM32实现将printf重定向到串口的3种方法一、使用MicroLib重定向printf二、不使用MicroLib重定向printf三、使用标准库自定义printf()函数到串口1单片机开发是不断调试的过程,串口打印能够大大提高程序调试的效率,但是在单片机里都是通过串口输出数据,串口输出数据的函数也不像C标准库中printf()那样好用,因此需要将printf的输出重定向到单片机串口上,这样就能够使用printf()调试程序了!基于STM32F103C8T6在keil5上,实现将printf重定向到串口的3种方法:默认已经在keil5创

android - 如何获取 NDK 应用程序中写入的 "printf"消息?

如果我在java文件中定义这样的函数/***Addstwointegers,returningtheirsum*/publicnativeintadd(intv1,intv2);所以我需要在c文件中编码JNIEXPORTjintJNICALLJava_com_marakana_NativeLib_add(JNIEnv*env,jobjectobj,jintvalue1,jintvalue2){printf("\nthisislogmessge\n");return(value1+value2);}那么这个printf将从哪里打印它的消息?在logcate中我不明白吗?如何通过放置日志消

c - printf C程序中的当前地址

假设我有以下简单的C程序:intmain(){inta=5,b=6,c;c=a+b;return0;}现在,我想知道表达式c=a+b的地址,也就是程序地址执行此添加的位置。有没有可能我可以使用printf?顺带一提:intmain(){inta=5,b=6,c;printf("Addressofprintfinstructioninmemory:%x",current_address_pointer_or_something)c=a+b;return0;}我知道如何使用gdb和infolinefile.c:line找到地址。但是,我应该知道我是否也可以直接使用printf执行此操作。

c++ - 为什么这段使用 printf 和 cout 的代码没有预期的输出?

我有以下代码:intmain(){ios_base::sync_with_stdio(false);cin.tie(NULL);for(inti=0;i这段代码的预期输出是:001122但是,它会打印:012012此问题发生在GNUG++4.9.2编译器中 最佳答案 对此的一种可能解释是cout和printf使用单独的缓冲区。当使用endl命令刷新或缓冲区已满(通常为512字节)时,cout在终端屏幕上输出。我不确定printf(如果我错了,请随时纠正我),但它也遵循类似的行为。所以会发生的是,在程序结束时,两个缓冲区都被刷新,所以