printf 格式问题

#include<iostream>
using namespace std;

int main(void)
{

  char *a = "abc", *b = "bcd";
  printf("%s %s %s",a,b);
	return 0;
}

以上代码段,编译不会报错,会有warning, 输出abc bcd null....

时间: 2024-11-06 17:33:25

printf 格式问题的相关文章

printf格式字符

printf格式字符的具体说明可以参考谭浩强<C程序设计教程>(ISBN 978-7-302-15157-9)62页表3-1. //代码例程源自国嵌 #include <stdio.h> int main() { int i = -2; unsigned int j = 1; if( (i + j) >= 0 ) { printf("i+j>=0\n"); } else { printf("i+j<0\n"); } prin

printf 格式输出

printf 格式输出 d,lx,ld,,lu,这几个都是输出32位的hd,hx,hu,这几个都是输出16位数据的,hhd,hhx,hhu,这几个都是输出8位的,lld,ll,llu,llx,这几个都是输出64位的, printf( "%llu ",.....)%llu   是64位无符号%llx才是64位16进制数 Dev-C++下基本数据类型学习小结 环境: Dev-C++ 4.9.6.0 (gcc/mingw32), 使用-Wall编译选项 基本类型包括字节型(char).整型(

printf 格式

格式: printf format [string] printf 格式 参数 由于printf的行为是由POSIX标准所定义,因此使用printg的脚本比使用echo更具可移植性. 程序: #!/bin/bash printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234 printf "%-10s %-8s %-4.2f\n" 杨过 男 48.

printf格式输出总结

#include<stdio.h>    #include<string.h>    int main()    {        char c, s[20];        int a=1234;       float f=3.141592653589;        double x=0.12345678912345678;        strcpy(s, "Hello,World");        c='\x41';        printf(&q

C语言 printf格式输出详解

转换说明及作为结果的打印输出 %a 浮点数.十六进制数字和p-记数法(C99)%A 浮点数.十六进制数字和p-记法(C99)%c 一个字符 %d 有符号十进制整数 %e 浮点数.e-记数法%E 浮点数.E-记数法%f 浮点数.十进制记数法 %g 根据数值不同自动选择%f或%e.%G 根据数值不同自动选择%f或%e.%i 有符号十进制数(与%d相同)%o 无符号八进制整数%p 指针 %s 字符串%u 无符号十进制整数%x 使用十六进制数字0f的无符号十六进制整数 %X 使用十六进制数字0f的无符号

【转】printf格式串中的%f的输出格式和内容

原文地址:http://blog.sina.com.cn/s/blog_605f5b4f0100x3ep.html 首先声明:在VC++下编译printf不会自动做类型转换,比如int a=3; printf("%f",a);运行过程中会报错,runtime error R6002: floating point not loaded. 如下均是在linux的程序. 如下是借鉴别人的,有助于分析原因. 以小数格式输出一个整数: int a = 0, b = 0;printf("

山谈c中printf格式修饰符

废话不多说,简单粗暴地上图. (一)初始定义 (二)运行结果 (三)规律总结 对于如下: printf("%7.4d",12); printf("%4.7f",123.456); printf("%12.7s","hello"); 等输出语句, 归纳成形如printf("%a.bc",d)格式的输出语句,其中d为int/float/char[]等类型变量,c为d/f/s等格式符,a为前修饰符,b为后修饰符.

格式转换说明符scanf,printf格式%大全/格式化输入输出(转)

相信不管大神还是菜鳥,都认得printf.它家还有兄弟sprintf,scanf,sscanf...$^&* 当你华丽丽的写下char c='c';printf("char=%d",c);的时候,一切都还是那么美好. 不过当你声明一个char buf[2];然后sscanf("30000","%d",buf);的时候,就不那么好玩了. 本以为2个字节足够装下32767以内的数字,却把内存写爆了. 此处关键就是格式符乱写产生的问题. 此时最

C语言Printf格式

使用printf打印时发现,如果数据类型和打印使用的类型不一致,结果就是混乱的. 这是因为printf本身并不进行数据的类型转换,他只是把输入按照给定的数据格式输出,如果二者不匹配,那么由于不同数据类型的二进制存储方式不一样,读出的数据就是错误的. 所以,为求稳妥,在使用printf,fprintf,scanf,fscanf在类型不一致时还是手动转化吧! printf("%f\n",1.3); printf("%d %f\n",1.3,1.3); 打印结果: 1.3