printf函数的格式化字符串

 printf(格式化输出函数)_百度百科printf 是指格式化输出函数,主要功能是向标准输出设备按规定格式输出信息。printf 是C语言标准库函数,定义于头文件 <stdio.h>。printf 函数的一般调用格式为:printf("<格式化字符串>", <参量表>)。输出的字符串除了可以是字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。https://baike.baidu.com/item/printf/7467706?fr=aladdin

 printf输出全格式(C语言)_柏源宜次的博客-CSDN博客_printf输出格式在学尚硅谷C语言视频时,想自己先把他说的项目写一遍在去看他的视频,突然发现我对printf输出就只会%d,%f之类的,所以就在这里总结一下。特殊符号输出:据我统计,正常的可视ASCII(码值为32-126之间)的字符,据我测试的就这些不能只有下面四个不能直接输出,其它均可通过键盘输入用printf函数直接打印出来。"\"%%%'\'\\\代码:#include <stdio.h>int main(){ ...https://blog.csdn.net/ldl666999/article/details/123427550

1.整形变量
无符号
%u:unsigned int

十进制输入输出:
%hd:short
%d:decimal int(%i:是上古时代写法)
%ld:long int
%lld/%Ld:long long
%lu:long unsigned int
%llu:long long unsigned int
%zd或%zu:size_t(32位系统=%u,64位系统=%lu)类型的值。

/**需要指出的是对于负数,不存在16进制或者8进制的负数,只会答应存在于内存中的补码**/
八进制输入输出:
%o:unsigned octal

十六进制输入输出:
unsigned hexadecimal number
%x:出现abcdef小写
%X:出现ABCDEF大写
%#X:出现abcdef小写,在输出前加0x,默认整形,4个字节大小(scanf("%X",&i);)
%#lX:出现ABCDEF大写,在输出前加0X,长整形,8个字节大小,输出地址方便
%08x,%08X:八位,前方不足补0


2.浮点数变量

%f:float
%lf:double
%Lf:long double

​%m.n : m指域宽,即对应的输出项在输出设备上所占的字符数。n指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。

l 对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。

%g:输出时忽略末尾无意义的0

3.科学计数法
%e:float/double、e-记数法
%E:float/double、E-记数法
%Le:long double

3.字符
%c:char
%C:wchar
%s:char*(%s = %hs = %hS 输出 窄字符)
%S:wchar*(%ws = %S 输出宽字符串)
%- width.precision s
-:向左对齐
width:一个整数,代表输出的域宽
precision:一个整数,代表输出的进度
例如:%-10.5s:向左对齐,输出域宽10,最多输出5个字符

4.地址
%p:(void*)
%%  打印一个百分号


%a  浮点数、十六进制数字和p-记数法(c99
%A  浮点数、十六进制数字和p-记法(c99)

%d  有符号十进制整数(int)(%ld、%Ld:长整型数据(long),%hd:输出短整形。) 

%f  单精度浮点数(默认float)、十进制记数法(%.nf  这里n表示精确到小数位后n位.十进制计数)
%g  根据数值不同自动选择%f或%e.
%G  根据数值不同自动选择%f或%e.
%i  有符号十进制数(与%d相同)
%o  无符号八进制整数
%p  指针

%u  无符号十进制整数(unsigned int)
%x  使用十六进制数字0xf的无符号十六进制整数 
%X  使用十六进制数字0xf的无符号十六进制整数
 
 
%I64d 用于INT64 或者 long long
%I64u 用于UINT64 或者 unsigned long long
%I64x 用于64位16进制数据
 

#include <stdio.h>
#include <limits.h>

#define FILE_TYPE ".txt"
//typedef long unsigned int size_t
int main(void)
{
	printf("%u %u\n",PATH_MAX,NAME_MAX);
	
	char buf[PATH_MAX + NAME_MAX + sizeof(FILE_TYPE)];
	printf("%lu\n",sizeof(buf));
	//sizeof()编译阶段运算完成,即main.c->main.s
	return 0;
}
#include <iostream>

int main(void)
{
    const char* s = "123456789";
    int width = 10;
    int precision = 6;
    printf("%-*.*s\n",width,precision,s);
    return 0;
}
#include <stdio.h>
int main(void)
{
	double i = 3.123456789;
	printf("%.13lf\n", i);
	int j = 123;
	printf("%d;%8d;%-8d;%+8d;%#X;%#o \n", j, j, j, j, j, j);
    return 0;
}

#include <stdio.h>
int main(void)
{
    float a = 12.34;
    printf("%f\n", a);
    printf("%e\n", a);
    printf("%g\n", a);

    return 0;
}
#include <stdio.h>
int main(void)
{
	char szBuff[20];
	scanf("%19s", szBuff);
	//%19s,限制最多输入19个字符
	//输入:12345678901234567890123456789
	//Input 1234567890123456789
	printf("Input %s", szBuff);
	return 0;
}
int main(int argc, char* argv[])
{
    char chValue1 = '\015'; //8进制
    char chValue2 = '\0'; //8进制
    chValue2 = '0'; //注意与上一行进行区分
    char chValue3 = '\x0C'; //16进制
    char chValue4 = 101; //10进制
    return 0;
}
#include <iostream>

int main(void)
{
    const char* s = "hell%o,world";
    //printf(s);//不安全啊,参数中有%号
    printf("%s",s);//安全
    return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值