由于它没有强types,我认为它只是select了正确的内存大小,并根据参数的types来解释它。 但是float和double都使用%f,而且它们是不同的大小。 PS我可以看到如何通过将值复制到临时和铸造(是这样吗?)可能工作,但它是如何工作的scanfs / sscanf?
当像这样转换int时: char a[256]; sprintf(a, "%d", 132); 确定a应该多大的最好方法是什么? 我假设手动设置它是好的(因为我已经看到它在各地使用),但它应该是多大? 在32位系统上可能的最大int值是多less,并且有一些决定在飞行中的棘手方法?
我如何使用GCC在C99中使用printf long long int和unsigned long long int ? 我已经search了其他build议使用%lldpost,但是它给出了这些警告: 警告#1:格式为[-Wformat] |的未知转换types字符'l' 警告#2:格式参数太多[-Wformat-extra-args] | 对于以下尝试: #include <stdio.h> int main() { long long int x = 0; unsigned long long int y = 0; printf("%lld\n", x); printf("%llu\n", y); }
我试过了,但没有奏效。 #include <string> string someString("This is a string."); printf("%s\n", someString);
我很难理解你为什么需要asprintf。 它在说明书中说 函数asprintf()和vasprintf()类似于sprintf(3)和vsprintf(3),除了它们分配一个足够大的string来保存包括终止空字节的输出,并且通过第一个参数返回一个指向它的指针。 这个指针应该被传递给free(3),当不再需要的时候释放分配的存储。 所以这里是我想要了解的例子: asprintf(&buffer, "/bin/echo %s is cool", getenv("USER")); 如果缓冲区分配一个足够大的string与说char * =(string)有什么区别,
如何打印(与printf)复数? 例如,如果我有这个代码: #include <stdio.h> #include <complex.h> int main(void) { double complex dc1 = 3 + 2*I; double complex dc2 = 4 + 5*I; double complex result; result = dc1 + dc2; printf(" ??? \n", result); return 0; } ..应该使用什么转换说明符(或别的东西),而不是“???”
在C中,我想使用printf来显示指针,并使它们正确排列,我想用0填充它们。 我的猜测是,正确的做法是: printf(“%016p”,ptr); 这工作,但这个海湾合作委员会抱怨以下消息: 警告:与'%p'gnu_printf格式一起使用'0'标志 我已经google了一下,下面的线程是在同一个主题,但并没有真正给出解决scheme。 http://gcc.gnu.org/ml/gcc-bugs/2003-05/msg00484.html 阅读它,似乎gcc抱怨的原因是我提出的语法没有在C99中定义。 但我似乎无法find任何其他方式以标准认可的方式来做同样的事情。 所以这里是双重的问题: 我的理解是正确的,这种行为不是由C99标准定义的? 如果是这样,是否有一个标准的批准,便携式的方式呢?
有没有让我输出枚举的当前值的单线程?
我有一个数字列表如下: 0,16,32,48 … 我需要以hex输出这些数字: 0000,0010,0020,0030,0040 … 我曾尝试过的解决scheme如: printf("%.4x",a); // where a is an integer 但是我得到的结果是: 0000,0001,0002,0003,0004 … 我想我就在那里。 任何人都可以帮忙,因为我不擅长printf中的printf 谢谢。
例子: "Something %d" and "Something else %d" // Compatible "Something %d" and "Something else %f" // Not Compatible "Something %d" and "Something %d else %d" // Not Compatible "Something %d and %f" and "Something %2$f and %1$d" // Compatible 我想这应该有一些C函数,但我没有得到任何相关的search结果。 我的意思是编译器正在检查格式string和参数是否匹配,所以用于检查的代码已经写好了。 唯一的问题是我怎样称呼它。 我正在使用Objective-C,所以如果有一个Objective-C特定的解决scheme也可以。