我的理解是string是std命名空间的成员,那么为什么会发生以下情况? #include <iostream> int main() { using namespace std; string myString = "Press ENTER to quit program!"; cout << "Come up and C++ me some time." << endl; printf("Follow this command: %s", myString); cin.get(); return 0; } 每次程序运行时, myString打印一个看似随机的3个字符的string,如上面的输出。
在printf用作格式说明符时, %d和%i之间有什么区别?
我试图find一个很好的方式来打印前导0,如01001的邮政编码。 虽然这个数字将被存储为1001,但是这样做的好方法是什么? 我想使用任何case语句/如果然后找出多less个数字的数字,然后将其转换为一个字符数组与额外的0打印,但我不禁想到可能有办法做到这一点printf格式语法正在逃避我。
printf()和cout在C ++中有什么区别?
在C中使用printf时,如何转义%符号? printf("hello\%"); /* not like this */
我有一个size_ttypes的variables,我想用printf()来打印。 我用什么格式说明书来便携地打印? 在32位机器中, %u似乎是正确的。 我编译与g ++ -g -W -Wall -Werror -ansi -pedantic,并没有警告。 但是,当我在64位机器上编译该代码时,它会产生警告。 size_t x = <something>; printf( "size = %u\n", x ); warning: format '%u' expects type 'unsigned int', but argument 2 has type 'long unsigned int' 如预期的那样,如果我改变成%lu ,警告就会消失。 问题是,如何编写代码,以便在32位和64位计算机上编译警告? 编辑:我想一个答案可能是“投”variables为unsigned long ,并打印使用%lu 。 这在两种情况下都会起作用。 我正在查看是否有任何其他的想法。
是否有一个printf宽度说明符可以应用于浮点说明符,该说明符将自动将输出格式化为必要的有效数字数 ,以便在重新扫描string时获取原始浮点值? 例如,假设我打印一个float到2位小数的精度: float foobar = 0.9375; printf("%.2f", foobar); // prints out 0.94 当我扫描输出0.94 ,我没有符合标准的保证,我会得到原来的0.9375浮点值(在这个例子中,我可能不会)。 我想要一个方法告诉printf自动将浮点值打印到必要的有效位数,以确保可以将其扫描回传递给printf的原始值。 我可以使用float.h一些macros来派生出传递给printf 的最大宽度 ,但是是否已经存在一个说明符来自动打印到必要数量的有效数字 – 或者至less是最大宽度?
操作系统:Linux,语言:纯粹的C 一般情况下,我正在学习C编程,而在UNIX下C编程则是一个特例。 在使用fork()调用之后,我检测到printf()函数的一个奇怪的(对我来说)行为。 码 #include <stdio.h> #include <system.h> int main() { int pid; printf( "Hello, my pid is %d", getpid() ); pid = fork(); if( pid == 0 ) { printf( "\nI was forked! :D" ); sleep( 3 ); } else { waitpid( pid, NULL, 0 ); printf( "\n%d was forked!", pid ); } return […]
我可以使用printf作为hex或八进制数进行打印。 有格式标签打印为二进制,或任意的基地? 我正在运行gcc。 printf("%d %x %o\n", 10, 10, 10); //prints "10 A 12\n" print("%b\n", 10); // prints "%b\n"
使用下面的代码: char *name = malloc(sizeof(char) + 256); printf("What is your name? "); scanf("%s", name); printf("Hello %s. Nice to meet you.\n", name); 用户可以input他们的名字,但是当他们input一个像Lucas Aardvark这样的空间的名字时, scanf()只会截断Lucas之后的所有内容。 我如何使scanf()允许空格