C语言 - printf的占位符(%) 异常

printf的占位符(%) 异常

本文地址: http://blog.csdn.net/caroline_wendy/article/details/26719135

C语言中, 使用%代表占位符的意思, 如%d代表int类型, %f代表float类型.

须要注意的是, 占位符须要和使用參数匹配, 否则会出现越界或截断的情况;

如%f, 匹配5, 会导致使用8个字节去匹配4个字节, 会产生越界, 输出0;

%d, 匹配5.01, 会导致使用4个字节去匹配8个字节, 会产生截断, 输出一个大数;

代码:

/*
 * test.cpp
 *
 *  Created on: 2014.05.23
 *      Author: Spike
 */

/*eclipse cdt, gcc 4.8.1*/

#include <stdio.h>

int main()
{
	printf("%f\n", 5);
	printf("%d\n", 5.01);
}

输出:

0.000000
1889785610

时间: 2024-10-13 13:32:16

C语言 - printf的占位符(%) 异常的相关文章

Java C# C语言中的占位符

一般拼接一段字符串在编程中是很常见的事,下面简单做个总结: 什么是占位符?占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号. 1.Java中处理方法: package com.amos; import java.text.MessageFormat; /** * Created by amosli on 14-7-24. */ public class Test { public static void main(String args[]) { //拼接一段string 常用的方法

golang中fmt的&#39;占位符&#39;使用

golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. # 定义示例类型和变量 type Human struct { Name string } var people = Human{Name:"zhangsan"} 普通占位符 占位符 说明 举例 输出 %v 相应值的默认格式. Printf("%v", people) {zhangsan}, %+v 打印结构体时,会添加字段名 Printf("%+v",

golang fmt格式“占位符”

本文为转发,原文地址 golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. # 定义示例类型和变量 type Human struct { Name string } var people = Human{Name:"zhangsan"} 普通占位符 占位符 说明 举例 输出 %v 相应值的默认格式. Printf("%v", people) {zhangsan}, %+v 打印结构体时,会添加字段名 Printf("

黑马程序员-c语言基础:各种数据类型的输出占位符

c语言中的输出操作相对java来说是比较麻烦的,每种数据类型的输出都有各自的占位符: 下面是各种数据类型的输出占位符: short/int : %d int a = 1; printf("这个整数是:%d", a); long: %ld; (long 是int得修饰,不能算是一种单独的数据类型,只是比int多了四个字节的存储空间) long long: %lld char : %c float/double : %f  float默认是6位小数输出:可以在%f中控制:例如:%.2f:输

C语言中的格式占位符

C语言中的格式占位符: %a,%A 读入一个浮点值(仅C99有效) %c 读入一个字符 %d 读入十进制整数 %i 读入十进制,八进制,十六进制整数 %o 读入八进制整数 %x,%X 读入十六进制整数 %s 读入一个字符串,遇空格.制表符或换行符结束. %f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入. %p 读入一个指针 %u 读入一个无符号十进制整数 %n 至此已读入值的等价字符数 %[] 扫描字符集合 %% 读%符号

C语言-占位符

%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的无符号

Inno Setup中多语言时,使用占位符填充

如在: [CustomMessages] CreateDesktopIcon=Create a Desktop icon NameAndVersion=%1 version %2 普通的获取CustomMessages中字段的信息,只需使用CustomMessage方法即可 var S: String; begin S := CustomMessage('CreateDesktopIcon'); end; S 的结果是: Create a Desktop icon 但NameAndVersion

Java 占位符使用 和 修饰符

Java中占位符的使用 String类的format()方法 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重载形式. format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串. format(Locale locale, String format, Object... arg

第一天--来个占位符,让自己有一席之地

格式占位符 格式占位符(%)是在C/C++语言中格式输入函数,如scanf.printf等函数中使用.其意义就是起到格式占位的意思,表示在该位置有输入或者输出. 格式字符说明 %d, %i,代表整数,%f-浮点,%s,字符串,%c,char. %p 指针,%fL 长log,%e科学计数,%g 小数或科学计数. C语言中的格式占位符: %a,%A 读入一个浮点值(仅C99有效) %c 读入一个字符 %d 读入十进制整数 %i 读入十进制,八进制,十六进制整数 %o 读入八进制整数 %x,%X 读入