Tag: printf

如何使用printf打印非空终止的string?

我怎么能打印一个非null终止的string使用printf,假设我知道在运行时string的长度?

是否有一个sprintf等效于node.js

想在node.js中做输出格式化(sprintftypes的function),但在我自己写之前,我想知道是否有类似的内置(我拖过文档无济于事),或者如果有人已经写了一个模块。 非常感谢

如何在NSString中使用printf

我需要使用像NSLog但没有时间戳和换行符,所以我使用printf 。 我怎样才能用这个NSString ?

如何格式化string使用printf()在输出中获得相等的长度?

我有两个函数,一个产生消息,如Starting initialization…和另一个检查返回码和输出"Ok" , "Warning"或"Error" 。 但是,产生的输出具有不同的长度: Starting initialization…Ok. Checking init scripts…Ok. 我怎样才能得到这样的东西: Starting initialization… Ok. Checking init scripts… Ok.

在printf中使用颜色

当这样写时,它以蓝色输出文本: printf "\e[1;34mThis is a blue text.\e[0m" 但是我想要在printf中定义格式: printf '%-6s' "This is text" 现在我已经尝试了几个select如何添加颜色,但没有成功: printf '%-6s' "\e[1;34mThis is text\e[0m" 我甚至试图添加属性代码格式化,但没有成功。 这不起作用,我找不到任何地方的例子,其中颜色被添加到printf,它已经定义了格式,在我的情况。

在32位和64位体系结构上格式化NS(U)Integer时types转换的替代方法?

使用64位版本的iOS,我们不能再使用%d和%u来格式化NSInteger和NSUInteger 。 因为对于64位,这些是typedef'd long和unsigned long而不是int和unsigned int 。 所以如果你尝试用%d格式化NSInteger,Xcode会抛出警告。 Xcode对我们来说很好,并为这两种情况提供了一种替代scheme,它由l前缀格式说明符和longtypes组成。 那么我们的代码基本上是这样的: NSLog(@"%ld", (long)i); NSLog(@"%lu", (unsigned long)u); 如果你问我,这是一个痛苦的眼睛。 几天前,Twitter上有人提到了格式说明符%zd来格式化签名variables和%tu来格式化32和64位平台上的无符号variables。 NSLog(@"%zd", i); NSLog(@"%tu", u); 这似乎工作。 而我更喜欢types化。 但我真的不知道为什么这些工作。 现在这两个对我来说基本上都是神奇的价值。 我做了一些研究,发现z前缀表示以下格式说明符与size_t具有相同的大小。 但是我完全不知道前缀t是什么意思。 所以我有两个问题: %zd和%tu究竟是什么意思? 是否可以安全地使用%zd和%tu而不是Applebuild议将types转换为long? 我知道类似的问题和苹果64位转换指南,这些指南都推荐使用%lu (unsigned long)方法。 我要求一个替代types铸造。

在C中,一个很长的printf语句可以分成多行?

我有以下陈述: printf("name: %s\targs: %s\tvalue %d\tarraysize %d\n", sp->name, sp->args, sp->value, sp->arraysize); 我想分解它。 我尝试了以下,但它不起作用。 printf("name: %s\t args: %s\t value %d\t arraysize %d\n", sp->name, sp->args, sp->value, sp->arraysize); 我怎样才能分解它?

为什么每次都要在C中指定数据types?

正如你可以从下面的代码片断看到的,我已经声明了一个charvariables和一个intvariables。 当代码被编译时,它必须识别variablesstr和i的数据types。 为什么我需要通过指定%s或%d到scanf来扫描我的variables是否是string或整型variables? 编译器不够成熟,无法识别当我声明我的variables? #include <stdio.h> int main () { char str [80]; int i; printf ("Enter your family name: "); scanf ("%s",str); printf ("Enter your age: "); scanf ("%d",&i); return 0; }

为什么%d代表整数?

我知道这听起来不是很有效,但我正在寻找一种方法来记住printf调用的所有格式化代码。 %s , %p , %f都很明显,但我不明白%d是从哪里来的。 %i已经被其他东西占用了吗?

为什么不是`printf`中定义的`float`的说明符?

它看起来可能是,至less在C99中可以应用于int长度修饰符: %hhd , %hd , %ld和%lld表示有signed char , short , long和long long 。 甚至还有一个适用于double的长度修饰符: %Lf表示long double %Lf 。 问题是为什么他们忽略float ? 遵循这个模式,它可能是%hf 。