printf相关内容
当我注意到我正在使用 C 风格的操作来访问 IO(printf、fopen 等)时,我正在为一个小型业余项目编写一些 C++ 代码.. 在 C++ 项目中使用 C 函数是否被认为是“不好的做法"?与 C 风格的 IO 访问相比,使用流有哪些优势? 解决方案 这是一个热门话题. 有些人更喜欢使用 C++ IO,因为它们是类型安全的(对象的类型和格式字符串中指定的类型之间不能有分歧
..
我目前使用显式转换为 long 并使用 %ld 打印 pid_t,是否有说明符,例如 %z为 size_t 为 pid_t? 如果不是,打印 pid_t 的最佳方式是什么? 解决方案 没有这样的说明符.我认为你在做什么(将 pid_t 转换为 long 并用 "%ld" 打印)很好;您可以使用更宽的 int 类型,但没有实现 pid_t 大于 long 并且可能永远不会.
..
谁能用简单的英文解释一下printf、fprintf和sprintf的区别? 它在哪个流中? 在阅读“C 中的文件处理"时,我真的很困惑这三个. 解决方案 在 C 中,“流"是一种抽象;从程序的角度来看,它只是字节的生产者(输入流)或消费者(输出流).它可以对应于磁盘上的文件、管道、终端或某些其他设备,例如打印机或 tty.FILE 类型包含有关流的信息.通常,您不会直接处理
..
我目前正在使用显式转换为 unsigned long long 并使用 %llu 打印它,但由于 size_t 具有 %z 说明符,为什么 clock_t 没有? 它甚至没有一个宏.也许我可以假设在 x64 系统(操作系统和 CPU)上 size_t 的长度是 8 个字节(即使在这种情况下,他们也提供了 %z),但是什么关于clock_t? 解决方案 似乎没有完美的方法.问题的根源在
..
在我的 Haskell 程序中,我想使用 printf 来格式化元组列表.我可以将 printf 映射到一个列表上,这样一次打印一个值: mapM_ (printf "Value: %d\n") [1,2,3,4]价值:1价值:2价值:3价值:4 我希望能够做这样的事情: mapM_ (printf "Values: %d %d\n") [(1,100),(2,350),(3,600),(4
..
我在 windows7 上使用 dev cpp 来编译我的代码. int d = 0x12;char* e = (char*)&d;printf("%d %d\n", sizeof (int), sizeof (float));printf("%p %p\n", &d, (float*)&d);printf("%p %p %p %p %p\n", &d, &e[0], &e[1], &e[2],
..
int a=5;浮动 b=3.5;printf("%d",b);printf("\n%f",a); 谁能告诉我为什么这段代码显示意外输出(垃圾\n3.5) 解决方案 Format string wrong error,根据你对a和b的声明: printf("%d",b);
..
#include int main(){浮动 a = 5;printf("%d", a);返回0;} 这给出了输出: 0 为什么输出为零? 解决方案 %d 格式说明符只能与 int 类型的值一起使用.您正在传递一个 double (其中 float 将被隐式转换为).结果行为是未定义的.“为什么打印 0?"没有答案.问题.什么都可以打印.事实上,任何事情都可能发生. 附言
..
我正在尝试用 C 编写一个函数,其中每个处理器都打印自己的数据.这是我所拥有的: void print_mesh(int p,int myid,int** U0,int X,int Y){int i,m,n;for(i=0;i 由于某种原因它不起作用.数组全部混合打印.您对为什么这不起作用有任何见解吗?还有其他可行的想法吗?如果可能,我不想在主进程中发送整个数组.另外我不想使用预编译函数.
..
我想知道如何在控制台中打印彩色文本?我使用 eclipse win64 操作系统.和编译器有关系吗?任何人都可以用 C 语言举一个简单的例子,只有一个红色的 hello world 文本或其他什么? 解决方案 我知道这在 C++ 中非常容易做到,但我发现这个让你在 C 中查看: #include #include //WinApi 头int main(){处理 hConsole;国际 k
..
当这样写时,它输出蓝色文本: printf "\e[1;34m 这是蓝色文字.\e[0m" 但我想在 printf 中定义格式: printf '%-6s' "这是文本" 现在我尝试了几种添加颜色的方法,但都没有成功: printf '%-6s' "\e[1;34mThis is text\e[0m" 我什至尝试将属性代码添加到格式中,但没有成功.这不起作用,我无法在任何地方找到将颜色
..
#include int main() {unsigned long long int num = 285212672;//仅供参考:适合29位int normalInt = 5;printf("我的数字是 %d 字节宽,它的值为 %ul.正常数字是 %d.\n", sizeof(num), num, normalInt);返回0;} 输出: 我的号码是 8 字节宽,它的值为 28521267
..
我正在研究这个程序,我注意到使用 %f 表示 double 和 %d 表示浮点数给了我完全不同的东西.有人知道为什么会这样吗? int main(){浮动 a = 1F;双 b = 1;printf("float =%d\ndouble=%f", a, b);} 这是输出 float = -1610612736双 = 1903598371927661359216126713647498937
..
我在带有变量的 bash 脚本中回显一些文本,并希望填充该变量,以便它始终在右侧有适当数量的空格以保持文本的其余部分对齐. 这是我想要的示例: 回显随机数1080 [OK]回显随机数 443 [OK]回显随机数 34842 [OK] 数值的长度会有所不同(可能不超过 5 或 6 位). 我知道 printf 可以做到这一点,并通过执行以下操作来正确对齐变量: printf "Ec
..
当我使用 printf("%f\n", myNumber) 打印 int 时,为什么会得到错误的值? 我不明白为什么它用 %d 打印得很好,但用 %f 打印不行.不应该只是添加额外的零吗? int a = 1;整数 b = 10;int c = 100;整数 d = 1000;整数 e = 10000;printf("%d %d %d %d %d\n", a, b, c, d, e);//
..
我有一个以竖线分隔的提要文件,其中包含多个字段.由于我只需要几个,我想使用 awk 来捕获它们以用于我的测试目的.但是,我注意到如果我使用 "%d",printf 会更改该值.如果我使用 "%s",它工作正常. Feed 文件示例: [jaypal:~/Temp] cat temp 302610004125074|19769904399993903|30|15|2012-01-1
..
我在学校没有机会参加任何严肃的低级编程课程.(我知道我真的应该继续学习“幕后"以成为一名更好的程序员.)我欣赏 Java 的便利,包括将任何东西粘贴到 System.out.print 语句.但是,您是否有任何理由想要使用 System.out.printf 代替? 另外,我应该在“实际应用程序"中避免这样的打印调用吗?使用某种 UI 功能将消息打印到客户端的显示器可能更好,对吗? 解
..
$cc a.c$./a.out
..
我正在尝试将结构的一部分与十六进制值连接起来.我遍历循环中的每个字节并转换为十六进制,然后我想将所有十六进制连接成一个长字符串. 然而,我在循环结束时只得到一个值.由于某种原因,字符串没有正确连接.知道我做错了什么吗? typedef struct OPTIONS_STR{整数最大值;int 打印名称;} 选项;void set_default_options(OPTIONS *optio
..
我不明白为什么程序控制没有到达第三个 printf,就在 for 循环之后. 为什么第三个 printf 不打印? 如果我将 for 循环更改为 while 循环,它仍然不会打印. 这是程序和输出: main(){双数控;printf("为什么会这样,nc = %f\n", nc);for (nc = 0; getchar() != EOF; ++nc){printf ("%.
..