Tag: printf

什么是使用printf打印clock_t的正确方法?

我目前使用一个明确的%llu转换为unsigned long long并使用%llu来打印它,但是由于size_t具有%z说明符,为什么clock_t没有? 甚至没有一个macros。 也许我可以假设在一个x64系统(OS和CPU) size_t是8字节的长度(甚至在这种情况下,他们提供了%z ),但是clock_t呢?

用printf打印UTF-8string与多字节string文字

在像这样的语句中,两者都以相同的编码(UTF-8)input到源代码中,并且语言环境设置正确,它们之间是否有实际区别? printf("ο Δικαιοπολις εν αγρω εστιν\n"); printf("%ls", L"ο Δικαιοπολις εν αγρω εστιν\n"); 因此,在做输出时,是否有理由相对于另一个? 我想第二个performance会更糟,但是它在多字节文字上有什么优势(或缺点)吗? 编辑:这些string打印没有问题。 但是我没有使用宽string函数,因为我希望能够使用printf等。 所以问题在于这些印刷方式是否与以上所述情况不符?如果是这样,第二种方式有什么优势? 编辑2:下面的评论,我现在知道这个程序的作品 – 我认为是不可能的: int main() { setlocale(LC_ALL, ""); wprintf(L"ο Δικαιοπολις εν αγρω εστιν\n"); // wide output freopen(NULL, "w", stdout); // lets me switch printf("ο Δικαιοπολις εν αγρω εστιν\n"); // byte output } 编辑3 :我已经做了一些进一步的研究,看看这两种types正在发生什么。 采取更简单的string: wchar_t *wides = […]

Java:printf语句中的文字百分号

我试图添加一个实际的百分号到Java中的printf语句,我得到的错误: lab1.java:166: illegal escape character System.out.printf("%s\t%s\t%1.2f\%\t%1.2f\%\n",ID,pattern,support,confidence); ^ lab1.java:166: illegal escape character System.out.printf("%s\t%s\t%1.2f\%\t%1.2f\%\n",ID,pattern,support,confidence); ^ 2 errors 我不知道如何把一个实际的百分号放到我的printf中? 我认为使用\%来逃避它会工作,但事实并非如此。 有任何想法吗?

为什么#include <stdio.h>不需要使用printf()?

会议logging: >type lookma.c int main() { printf("%s", "no stdio.h"); } >cl lookma.c Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80×86 Copyright (C) Microsoft Corporation. All rights reserved. lookma.c Microsoft (R) Incremental Linker Version 8.00.50727.762 Copyright (C) Microsoft Corporation. All rights reserved. /out:lookma.exe lookma.obj >lookma no stdio.h

C代码printf函数

可能重复: c / c ++函数的源代码 我想知道在哪里可以find使用的C代码,所以当我写printf(“Hello World!”); 在我的C程序知道它必须打印该string到STDOUT。 我看了<stdio.h>,但在那里我只能find它的原型int printf(const char *格式,…),但不是它看起来像内部。

如何将可变数量的parameter passing给printf / sprintf

我有一个类包含一个“错误”函数,将格式化一些文本。 我想接受可变数量的参数,然后使用printf格式化它们。 例: class MyClass { public: void Error(const char* format, …); }; Error方法应该在参数中调用printf / sprintf来格式化,然后用它做些什么。 我不想自己编写所有的格式,所以试图找出如何使用现有的格式是有意义的。

混合cout和printf以获得更快的输出

执行一些testing后,我发现printf比cout快得多。 我知道它是依赖于实现的,但在我的Linux机器上, printf速度是8倍。 所以我的想法是混合两种打印方法:我想使用cout来打印简单的图片,并且我打算使用printf来产生巨大的输出(通常是一个循环)。 我认为只要在切换到其他方法之前不要忘记刷新就可以了。 cout << "Hello" << endl; cout.flush(); for (int i=0; i<1000000; ++i) { printf("World!\n"); } fflush(stdout); cout << "last line" << endl; cout << flush; 这样可以吗? 更新:感谢所有宝贵的反馈。 答案总结:如果你想避免棘手的解决scheme,只是简单地不要使用带有cout endl ,因为它隐式地刷新缓冲区。 改用"\n" 。 如果产生大量输出,这可能会很有趣。

C中的“退格”转义字符“\ b”,出乎意料的行为?

所以我终于通过K&R阅读,并在前几页学到了一些东西,那就是有一个退格转义字符“ \b ”。 所以我去testing一下,有一些非常奇怪的行为。 #include <stdio.h> main () { printf("hello worl\b\bd\n"); } 输出是 hello wodl 任何人都可以解释吗?

在C中打印hex字符

我试图读取一行字符,然后打印出相当于字符的hex。 例如,如果我有一个string是"0xc0 0xc0 abc123" ,其中前两个字符是hex的c0 ,其余的字符是abc123的ASCII,那么我应该得到 c0 c0 61 62 63 31 32 33 但是,使用%x printf给了我 ffffffc0 ffffffc0 61 62 63 31 32 33 如何在没有"ffffff"情况下获得我想要的输出? 为什么只有c0(和80)有ffffff ,而不是其他的字符?

打印1到1000没有循环或条件

任务 :从1到1000打印数字,不使用任何循环或条件语句。 不要只写printf()或cout语句1000次。 你将如何使用C或C ++?