C语言中输入输出格式控制

1C语言中,非零值为真,真用1表示;零值为假,假用0表示。

2、转义字符参考:

\a

蜂鸣,响铃 

\b

回退:向后退一格

\f

换页 

\n

换行

\r

回车,光标到本行行首 

\t

水平制表

\v

垂直制表 

\\

反斜杠

\'

单引号 

\"

双引号

\?

问号 

\ddd

三位八进制 

\0

空字符(NULL),什么都不做

\xhh

二位十六进制

说明:

1)\v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。

2),\n其实应该叫回车换行。换行只是换一行,不改变光标的横坐标;回车只是回到行首,不改变光标的纵坐标。

注:

    文本文件的行结束符,传统上(MSPC用 CRLF,苹果MacCRunix 用 LF

    CR -- 回车符,c语言'\r'

    LF -- 换行符, c语言'\n'

    不同计算机上c语言统一规定为:文本文件的行结束符一律变成一个符号LF,也就是换行符'\n'。“回车和换行符转换成一个换行符”,对PCMS OS而言,文本文件行结束符CRLF读入后,丢掉CR,LF。例如fgets() 读入一行,行尾只有LF,没有CR

3)\t光标向前移动四格或八格,可以在编译器里设置

4)\'在字符里(即单引号里)使用。在字符串里(即双引号里)不需要,只要用 '即可。

3、格式化输入输出

1)格式化输入

printf("格式串" [,表达式1,表达式2,···]);

其中,格式串的字符有两类:

① %开头引导的格式符,用于控制表达式的输出格式(有多少个表达式,就有多少个格式符)

② 非格式符:原样显示在屏幕上。

1字符串常量的输出

    无表达式,格式串中无格式符,如:

    printf("We are students.\n"); 

2格式符的语法

syntax: %[flag][width][.precision][h|l|L]type

a[h|l|L]type

type字段采用一个英文字母来表达数据类型与格式:   

按十进制有符号整数形式输出

按十进制有符号整数形式输出(d格式)

u

按十进制无符号数形式输出

o

按八进制无符号数形式输出

x

按十六进制无符号数形式输出,输出时使用小写字母 (a, b, c, d, e, f)

X

按十六进制无符号数形式输出,输出时使用大写字母(A, B, C, D, E, F)

f

按十进制小数形式输出浮点数,输出格式为:[-]ddd.dddddd(默认输出6位小数)

e

按十进制指数形式输出浮点数,输出格式为:[-]d.dddde[+/-]ddd,(e后面是指数)

E

按十进制指数形式输出浮点数,输出格式为:[-]d.ddddE[+/-]ddd,(E后面是指数)

eE格式输出浮点数时,输出的是科学记数法形式,即小数点前面的整数部分固定为1位整数

g

按十进制形式输出浮点数,自动选择fe格式中,输出长度小的格式输出;g格式不输出无用的0

G

按十进制形式输出浮点数,自动选择f或E格式中,输出长度小的格式输出;G格式不输出无用的0

c

输出单个字符

s

输出字符串

p

输出void指针,输出格式是:WIN32编程模式,只有XXXXXXXX一种格式

%

输出字符%%用于引导格式控制符,在格式串中输出%号时,必须采用格式%%

前缀修饰符:

L: 输出long double类型表达式必加

l: 输出长整型表达式必加

h: 输出短整型表达式必加

b[width]

    width字段用来指定输出的数据项占用的字符列数,也称为输出域宽。缺省该字段,输出宽度按数据的实际位数输出;如果指定的输出宽度小于数据的实际位数,则突破域宽的限制,按实际位数输出;如果指定的域宽大于数据的实际位数,则默认在输出数据的左边输出空格,使输出的字符数等于列宽,也就是说,输出的数据在输出域中自动向右对齐。

width有以下三种情况:

n

一个非负整型常数,指定输出占用n列宽度。

0n

n为一个整型常数,输出占用n列,如果实际位数不足n列,数据前面补0,填满n

*

输出域宽来自待输出表达式前面的一个整型表达式。

printf("%*d", 8+1, -3);

c[.precesion]

      有以下4种情况:

缺省

对于f |e|E格式,表示小数点后输出6位小数,对于g |G格式,表示最多输出6位有效数字

.m

m为非负整型常数,对于浮点格式,指定小数点后面输出m位小数; s格式,表示只输出字符串的前面m个字符

.0

对于f |e|E格式,表示不输出小数点和小数,按整数形式输出

.*

表示precision来自待输出表达式前面的一个整型表达式

示例

View Code?
#include "iostream"
#include "stdio.h"
using namespace std;
  
int main()
{
    double a=12.578,b=0.2572;
    int n=9,m=4;
    printf("%.2f,%10.2E,%f,%e,%10g",a,a,a,a,a);
    printf("\n");
    printf("a=%.0f,a=%*.*f",a,n,m,a);
    printf("\n");
    printf("%.2f%%",b*100);
    printf("\n");
    printf("%s%6s%6.3s","ABCD""ABCD""ABCD");
    return 1;
}

注意,输出中任何一个字符都算作一位。

wps_clip_image-8555

d[flag]

缺省

输出正数时不输出正号;域宽大于数据实际位数时,域中左边补空格,数据靠右对齐;

+

输出正数时要输出正号;

-

域宽大于数据实际位数时,域中右边补空格,数据靠左对齐。

#

用于x |X格式:输出0x(格式x)或0X(格式X)。

1、格式化输入函数scanf

用法: scanf("格式串" ,地址1,地址2,···);

1)格式符

syntax: %[*][width][h|l|L]type

(1) [h|l|L]type

d

以十进制有符号整数形式转换输入数据

i

以十进制有符号整数形式转换输入数据(d格式)

u

以十进制无符号整数形式转换输入数据

o

以八进制有符号整数形式转换输入数据

x |X

以十六进制有符号整数形式转换输入数据(xX等效)

e|E|f|g|G 

以十进制浮点数形式转换输入数据,输入数据时,可以输入整型常量、小数形式实型常量或指数形式实型常量。

c  

输入一个字符(可输入控制字符)

s  

输入字符串(遇到第一个空格、TAB或换行符结束转换)

前缀修饰符:

L: 输入long double类型变量必加

l: 输入长整型变量或者double型变量必加

h: 输入短整型变量必加

(2) [width]

width字段用来指定输入数据的转换宽度,它必须是一个十进制非负整型常量。width表示读入多少个字符就结束本数据项的转换。如果没有指定width,则遇到空格 、TAB键、回车/换行符、非法输入则结束数据项的转换(%c格式除外)。

float a;int b;double c;

scanf("%f%3x%lf",&a,&b,&c);

若输入为:-1.5A8059¿

a=-1.5, b=0xA80, c=59.0

(3) [*]

    表示数据输入项要按指定格式进行转换,但不保存变量,即该%没有对应的变量。

    一般用%*c来吸收字符。

2、几点说明:

      编译程序只是检查printf 函数的调用形式,不分析格式控制字符串,如果格式字符与输出项的类型不匹配,不进行类型转换。(输出的数为随机)

      格式字符要用小写字母。

      格式控制字符串中可以包含转义字符。

      格式控制字符串中的普通字符则原样输出。

      输出项的参数除了常数、变量外还可以是表达式、函数调用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java udp 接受阻塞_Java UDP发送与接收

IP地址?端口号?主机名?什么是Socket?什么是UDP?什么是TCP?UDP和TCP区别?以上问题请自行百度,有标准解释,此处不再赘述,直接上干货!实例:发送端&a…

JavaScript 运行机制详解:Event Loop

参考地址:http://www.ruanyifeng.com/blog/2014/10/event-loop.html 一、为什么JavaScript是单线程? JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢&a…

原码, 反码, 补码 详解

本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码…

java eden space_JVM虚拟机20:内存区域详解(Eden Space、Survivor Space、Old Gen、Code Cache和Perm Gen)...

1.内存区域划分根据我们之前介绍的垃圾收集算法,限定商用虚拟机基本都采用分代收集算法进行垃圾回收。根据对象的生命周期的不同将内存划分为几块,然后根据各块的特点采用最适当的收集算法。大批对象死去、少量对象存活的,使用复制算法&#…

gradle 插件 自定义_Gradle自定义插件

gradle 插件 自定义本教程介绍了创建Gradle独立自定义插件的方法。 它涵盖以下主题 创建任务,并在“自定义”插件中使用 独立的自定义插件 简短的插件ID 使用settings.gradle自定义Gradle设置 项目信息: Gradle版本:1.1 操作系统平台&…

Pytorch常用操作

创建tensor x torch.empty(*sizes)  #创建一个未初始化的tensor(后面用torch.nn.init中的一些函数进行初始化) >>> torch.empty(2, 3) tensor(1.00000e-08 * [[ 6.3984, 0.0000, 0.0000], [ 0.0000, 0.0000, 0.0000]]) x torch.rand(5, 3…

数据聚合Spring Data MongoDB:嵌套结果

1引言 在上一篇文章中,我们构建了聚合管道的基本示例。 如果您需要有关如何创建项目和配置应用程序的更多详细信息,也许您想看看使用Spring Data MongoDB和Spring Boot进行数据聚合 。 在本文中,我们将重点研究一个用例,在这种情况…

如何消除img默认的间距

方案一:div{font-size:0};方案二:img{ display:block};方案三:img{vertical-align:top;}方案四:div{ margin-bottom:-3px }; 为什么会有间距呢? 根本原因在于img标签为inline元素,该元素默认垂直对齐方式为以父元素的baseline,但是…

scanf中的%[^\n]%*c格式

scanf 语法: #include <stdio.h> int scanf( const char *format, ... ); 类似函数有 int scanf(const char *format, ...); int fscanf(FILE *stream, const char *format, ...);//指定输入流 int sscanf(const char *str, const char *for…

java有理数类的封装_java实验报告有理数的类封装.doc

java实验报告有理数的类封装华中科技大学文华学院《Java程序设计》实验报告实验三&#xff1a;有理数的类封装专业班级&#xff1a; 通信工程2008级1班姓名&#xff1a;学号&#xff1a;时间&#xff1a;实验三&#xff1a;有理数的类封装1、实验目的&#xff1a;让学生学习使用…

vim基本设置

vim基本配置&#xff1a;包括tab键替换成4个空格 Edit Vim configuration file ".vimrc" in your HOME directory, add below lines: [plain] view plaincopy set et set ci set sw4 set ts4 After new setting take effect, each time you press TAB key, …

在JPA和JDBC中使用存储过程。 嗯,只要使用jOOQ

Java杂志的当前版本由Josh Juneau撰写了有关JDBC和JPA的大数据最佳实践的文章&#xff1a; http : //www.javamagazine.mozaicreader.com/MayJune2016 本文介绍了如何在JDBC中使用存储过程&#xff08;不幸的是&#xff0c;请注意如何关闭资源。即使在Java Magazine的文章中&a…

java hash sha256_Sha256加密

package com.zq.utils.encryption;import java.util.Random;import org.apache.shiro.crypto.hash.Sha256Hash;import com.zq.utils.string.StringUtils;/**** Created by MyEclipse. Author: ChenBin E-mail: chenb8000056.com Date:* 2016-5-23 Time: 下午3:10:37 Company: H…

怎样花两年时间去面试一个人

Joel Spolsky曾经感叹&#xff1a;招聘难&#xff0c;难于上青天&#xff08;此处笔者稍加演绎:)&#xff09;。他有两个辛辣但不乏洞察力的断言&#xff1a;真正的牛人也许一辈子就投大概4次简历&#xff0c;这些家伙一毕业就被好公司抢走了&#xff0c;并且他们的雇主会给他们…

非网络引用element-ui css导致图标无法正常显示的解决办法

https://blog.csdn.net/m0_37893932/article/details/79460652 ******************************************** 前言 官方推荐的css及js引用方式如下: <!-- 引入样式 --> <link rel"stylesheet" href"https://unpkg.com/element-ui/lib/theme-chalk/in…

Java EE与Java SE:Oracle是否放弃了企业软件?

Java Enterprise Edition是全球Java社区中最大的困惑来源之一。 就像《星球大战》和《星际迷航 》之间的区别一样&#xff0c;对于“原力觉醒”是他们在这部电影中看过的第一部电影的人来说。 奇怪的是&#xff0c;即使您有使用EE进行开发的经验&#xff0c;但整个情况通常仍然…

约瑟夫环

约瑟夫环是一个数学的应用问题&#xff1a;已知n个人&#xff08;以编号1&#xff0c;2&#xff0c;3...n分别表示&#xff09;围坐在一张圆桌周围。从编号为k的人开始报数&#xff0c;数到m的那个人出列&#xff1b;他的下一个人又从1开始报数&#xff0c;数到m的那个人又出列…

java链表的数据结构_Java数据结构 获取链表(LinkedList)的第一个和最后一个元素

Java数据结构 获取链表(LinkedList)的第一个和最后一个元素以下实例演示了如何使用 LinkedList 类的 linkedlistname.getFirst() 和 linkedlistname.getLast() 来获取链表的第一个和最后一个元素&#xff1a;Main.java 文件import java.util.LinkedList;public class Main {pub…

第二章:表单和模板

在第一章中&#xff0c;我们学习了使用Tornado创建一个Web应用的基础知识。包括处理函数、HTTP方法以及Tornado框架的总体结构。在这章中&#xff0c;我们将学习一些你在创建Web应用时经常会用到的更强大的功能。 和大多数Web框架一样&#xff0c;Tornado的一个重要目标就是帮助…

C语言main()函数详解

C的设计原则是把函数作为程序的构成模块。main()函数称之为主函数&#xff0c;一个C程序总是从main()函数开始执行的。一、main()函数的形式 在最新的 C99 标准中&#xff0c;只有以下两种定义方式是正确的&#xff1a;int main( void ) /* 无参数形式 */{...return 0;}int ma…