我没有机会在学校参加任何严肃的低级程序课程。 (我知道我真的应该继续学习“幕后”,成为一名更好的程序员)。我很欣赏Java的便利,包括将任何东西粘贴到System.out.print语句中的能力。 但是,是否有任何理由要改为使用System.out.printf ? 另外,我是否应该避免在“真实应用程序”中这样打印电话? 使用某种UIfunction将消息打印到客户端显示屏可能会更好,对吗?
我正在寻找一个sprintf() – 类似于自动分配所需内存的函数的实现。 所以我想说 char* my_str = dynamic_sprintf( "Hello %s, this is a %.*s nice %05d string", a, b, c, d ); 并且my_str检索保存了sprintf()结果的分配内存的地址。 在另一个论坛上,我读到这样可以解决这个问题: #include <stdlib.h> #include <stdio.h> #include <string.h> int main() { char* ret; char* a = "Hello"; char* b = "World"; int c = 123; int numbytes; numbytes = sprintf( (char*)NULL, "%s %d […]
我没有find为什么Mac的发现没有select-printf的原因。 苹果通常决定采取与其他命令不正交的选项? 在没有coreutils的Mac中,如何达到与以下命令相同的结果 ? find . -printf "%i \n" // command in Ubuntu
我知道std::cout是printf的C ++等价物。 什么是sprintf的C ++等价物?
我正在使用Eclipse在C / C ++中进行编码,而且我正在努力处理可能非常简单的事情。 在我的代码下面我使用printf()和scanf() 。 在scanf()之前写入的是printf ,输出不同。 我能够在这里find类似的问题。 但我无法解决它。 有任何想法吗? 码: #include <stdio.h> int main() { int myvariable; printf("Enter a number:"); scanf("%d", &myvariable); printf("%d", myvariable); return 0; } 预期产出: Enter a number:1 1 相反,我得到: 1 Enter a number:1
从以前的问题来看: 如果你试图传递一个float到printf ,它会在printf收到之前被提升为double printf()是一个可变的函数吗? 那么一个可变参数在传递之前是否会提升float参数呢?
有没有办法指定一个string打印出多less字符(类似于int s中的小数位)? printf ("Here are the first 8 chars: %s\n", "A string that is more than 8 chars"); 想要打印: Here are the first 8 chars: A string
除了%hn和%hhn (其中h或hh指定指向对象的大小), printf格式说明符的h和hh修饰符有什么意义? 由于标准要求的可变参数函数的默认升级,不可能将char或shorttypes的参数(或其任何有符号/无符号变体)传递给printf 。 根据7.19.6.1(7), h修饰符: 指定后面的d,i,o,u,x或X转换规则适用于short int或unsigned short int参数(参数将根据整数提升进行提升,但其值将转换为short int或打印之前无符号短整型); 或者一个下面的n转换规范适用于一个短int参数的指针。 如果参数实际上是shorttypes或unsigned shorttypes,那么将int提升为int ,然后将其转换为short或unsigned short将会产生与提升为int相同的值 ,而不会返回任何转换。 因此,对于types为short或unsigned short , %d , %u等应该给%hd , %hu等等(对于chartypes和hh同样)。 据我所知, h或hh修饰符可能有用的唯一情况是当参数在short或unsigned short范围外传递一个int ,例如 printf("%hu", 0x10000); 但我的理解是,传递这样的错误types会导致不确定的行为,所以你不能期望它打印0。 我见过的一个真实世界的例子是这样的代码: char c = 0xf0; printf("%hhx", c); 尽pipe实现了一个简单的chartypes(在这种情况下, printf("%x", c)会打印fffffff0或类似的东西),作者期望它打印f0 。 但是这个期望值得吗? (注意:原来的types是char ,它被提升为int并被转换回unsigned char而不是char ,从而改变了被打印的值。但是标准是否指定了这个行为,或者它是一个实现细节破碎的软件可能依靠?)
价值作品的特点: $ printf "%d\n" \'A 65 $ 我有两个问题,第一个是最重要的: 我如何拿65并把它变成A? \ A使用printf将ASCII字符转换为其值。 特定于printf的语法,还是在BASH的其他地方使用? (这样的小string很难Google。)
我有以下 size_t i = 0; uint32_t k = 0; printf("i [ %lu ] k [ %u ]\n", i, k); 编译时出现以下警告: format '%lu' expects type 'long unsigned int', but argument has type 'uint32_t' 当我用夹板运行这个时,我得到了以下几点: Format argument 1 to printf (%u) expects unsigned int gets size_t: k 非常感谢您的任何build议,