Tag: printf

打印unsigned long long int值类型返回奇怪的结果

我在使用printf函数打印unsigned long long int类型的值时遇到问题 我不知道出了什么问题。 我在Windows 7 Professional 64位上使用Dev-Cpp 4.9.9.2和Visual Studio 2010 Professional(我知道它不是C编译器,但无论如何,想要尝试)。 为了显示,我使用了%llu修饰符(根据你如何printf一个unsigned long long int(unsigned long long int的格式说明符)? )但我也试过I64d没有效果…… 首先,我只想打印unsigned long long int最小值和最大值(使用limits.h ULONG_MAX ) printf(“unsigned long long int: \n%llu to %llu \n\n”, 0, ULONG_MAX); 返回: unsigned long long int:18446744069414584320 to 1580552164021 (Dev-Cpp) unsigned long long int:18446744069414584320 to 0 (Visual Studio) 然后我尝试使用printf打印两个零 printf(“unsigned […]

当printf的相应参数不是short / char时,使用h或hh长度修饰符是不合法的吗?

printf系列提供了一系列长度修饰符,其中两个是hh (表示有signed char或unsigned char参数提升为int )和h (表示有signed short或unsigned short参数,提升为int )。 从历史上看,这些长度修改器仅用于创建与scanf的长度修饰符对称,并且很少用于printf 。 以下是ISO 9899:2011§7.21.6.1“fprintf函数”¶7的摘录: 7长度修饰符及其含义是: hh指定以下d , i , o , u , x或X转换说明符适用于signed char或unsigned char参数(该参数将根据整数提升进行提升,但其值应转换为signed char或打印前unsigned char ); 或者后面的n转换说明符适用于指向signed char参数的指针。 h指定以下d , i , o , u , x或X转换说明符适用于short int或unsigned short int参数(该参数将根据整数提升进行提升,但其值应转换为short int打印前的short int或unsigned short int ); 或者后面的n转换说明符适用于指向short int参数的指针。 … 忽略n转换说明符的情况,这些几乎相同的段落对h和hh的行为有何看法? 在这个答案中 ,声称传递的参数超出了signed char , […]

如何使用printf在字符串中打印多个变量?

我想找到两个数字的最大值,然后打印出来。 我想要打印所有三个数字。 我使用以下代码。 #include #include main() { //clrscr(); int a,b,c; printf(“insert two numbers:”); scanf(“%d%d”, &a, &b); c = (a>b) ? a : b; printf(“\nmaximum of %d”,a,” and %d”,b,” is = %d” c); getch(); } 但是,我收到两个语法错误(请参见附图)。 有人可以帮帮我吗?

如何只打印字符串的某些部分?

我有一个字符串const char[15] ,我想像这样打印它: 标签一: 字符[0,13) 标签二: 字符[13,15] 如何只打印字符串的某些部分?

在没有sprintf的情况下将整数转换为C中的字符串

没有sprintf 可以在C中将整数转换为字符串吗?

printf何时无法打印?

c中的printf函数并不总是在屏幕上打印输出。 例如,如果您忘记将\ n放在字符串的末尾,那么您有时会得不到o / p。 printf无法打印时是否还有其他一些条件。 我记得有人说有7个这样的条件。 你能帮忙吗?

printf如何在内部工作?

我很好奇printf如何在Linux内部工作。 我不明白它如何将数据写入STDOUT 。 在对内部进行了一些搜索之后,我下载了glibc并查看了源代码: __printf (const char *format, …) { va_list arg; int done; va_start (arg, format); done = vfprintf (stdout, format, arg); va_end (arg); return done; } 找到这个之后,我深入研究了vfprintf函数 – 但该文件大约有2500行不熟悉的C代码。 我正在寻找10,000英尺的解释,如何printf与计算机的内存和输出一起工作,以在屏幕上显示字符。 如果我是汇编代码,我需要做些什么才能完成相同的任务? 它依赖于操作系统吗?

存储va_list以便以后在C / C ++中使用的最佳方法

我正在使用va_list来构造一个呈现的字符串。 void Text2D::SetText(const char *szText, …) 这一切都很好,但现在用户可以在应用程序运行时更改语言。 我需要重新生成所有文本字符串并在初始化后重新缓存文本位图。 我想存储va_list并在需要生成文本时使用它。 为了给你一些更多的背景知识,这需要在我正在翻译的关键字符串中包含动态数据的情况下发生。 “Player Score:%d” 这是我需要翻译的关键字符串。 我希望保留va_list中提供的数字以供以后使用(在初始化文本的函数范围之外),以便在初始化后需要重新翻译。 我希望保留一份va_list的副本,以便与vsnprintf一起使用。 我已经做了一些研究,并找到了一些方法。 其中一些我质疑它是否是一种合适的方法(在稳定和便携方面)。

如何防止打印function?

是否可以使function静音 ? 例如: #include int function(){ printf(“BLAH!”); return 10; } int main(){ printf(“%d”, silence( function()) ); return 0; } 而不是: BLAH! 10 我会得到: 10 可能吗? 如果积极怎么办呢?

printf \ t选项

使用printf中的printf将标签字符打印到标准输出时,它会输出一些显然长度为4个字符的空格。 printf(“\t”); 在上述情况下,有什么办法可以控制标签宽度吗? 任何帮助或建议表示赞赏。