首页 > 其他分享 >C语言基础-标准输入输出

C语言基础-标准输入输出

时间:2024-04-02 13:59:49浏览次数:16  
标签:字符 int 输入输出 C语言 char 标准 printf input 输入

标准库实现了简单文本的输入输出模式。
以下的示例在使用时都需要先包含标准输入输出头文件stdio.h

  • #include <stdio.h>
输入
getchar函数

int getchar(void);

  • 从标准输入(一般为键盘)中一次获取一个字符
  • 调用时,返回输入的字符
  • 遇到文件结尾时返回EOF
    • EOF也定义在stdio.h中,其值一般为-1,标志着输入或文件输入结束

代码示例

#include <stdio.h>

int main(int argc, char const *argv[])
{
	int input_c = getchar();
	printf("input char is : %c\n", input_c);
	
	while((input_c = getchar()) != EOF){
		printf("inputchar is %c\n", input_c);
	}
	
	return 0;
}

运行结果:

a //输入a和换行
input char is : a
inputchar is //输出换行

v//输入v和换行
inputchar is v
inputchar is 

v//输入v和换行
inputchar is v
inputchar is 

//输入ctrl+d结束输入,相当于输入EOF,退出程序
标准输入scanf函数

int scanf(char *format, …);
从标准输入中获取字符序列,按照format中指定的格式对字符序列进行解释,把结果保存到参数中

  • 其他参数必须是指针,表示输入转换完成后结果存放的位置
  • 返回成功赋值的参数个数
  • 如果输入结束并全部转换完成返回EOF
    format格式串
  • 格式串中的空格和制表符会被忽略
  • 普通字符,用于匹配输入流中的下一个非空字符
  • 以%开头的转换说明
字符参数类型
d十进制数
i整数,十进制、八进制或十六进制
o八进制,可以以0开头,也可以不以0开头
u无符号十进制数
x十六进制,可以以0x/0X开头,也可以不以它们开头
c非空白字符,以指定宽度读取,要读取一个空白字符使用%1s
s字符串,char*指向一个足够大小的字符数组
e,f,gfloat类型,可以是指数形式
g,Gdouble类型,如果指数小于-4或者大于等于精度,用%e格式输出,否则用%f格式输出
pvoid*类型指针
%打印一个%
  • d、i、o、u、x前可以加h表示存储变量为指向short类型,加l表示存储变量为指向long型的指针
  • e、f、g前可以加l表示存储变量为指向double类型的变量
  • 转换字符前可以加数字表示字段宽度
  • %*表示跳过赋值

代码示例

#include <stdio.h>

int main(int argc, char const *argv[])
{
	int a;
	char c;
	char s[10];
	double d;
	
	scanf("%d %c %s %lf", &a, &c, s, &d);
	
	printf("a = %d, c = %c, s is %s, d=%f\n", a, c, s, d);
	
	return 0;
}

运行结果:

10 a hello 10.5//依次输入然后回车结束本行输入
a = 10, c = a, s is hello, d=10.500000
输出
putchar函数

int putchar(int);

  • 用于将字符输出到标准输出(一般为屏幕)中
  • 返回输出的字符,如果输出有错误异常,返回EOF

代码示例

#include <stdio.h>

int main(int argc, char const *argv[])
{
	int input_c = getchar();
	putchar(input_c);
	putchar('A');
	putchar('\n');
	
	return 0;
}

运行结果:

e//输入e回车
eA
格式化输出函数printf

int printf(char *format, arg1, arg2…);

  • 将内部值通过格式化进行转换,打印到标准输出中,返回打印的字符个数
  • char *format部分
    • 普通字符串,原样不动地打印
    • %开头的格式化转换说明,打印对应的arg参数转换结果
      • %后的格式转换字母有如下几种
字符参数类型
d,i整型,十进制数
o整型,无符号八进制数
x,X整型,无符号十六进制数
u整型,无符号十进制数
c整型,单个字符
schar*类型,字符串内容,直到遇到\0或指定精度的字符个数
fdouble类型,十进制小数,小数点后位数由精度指定,默认6
e,Edouble类型,m.dddexxx
g,Gdouble类型,如果指数小于-4或者大于等于精度,用%e格式输出,否则用%f格式输出
pvoid*类型指针
%打印一个%
  • %和转换字母之间可以有一些控制字符
    • 负号,表示左对齐形式输出
    • 数字,最小打印字段宽度,不够的用空格补齐
    • 小数点加数字,表示字符串中最多打印的字符个数,浮点数中小数点位数
    • l,表示long型打印

代码示例

#include <stdio.h>

int main(int argc, char const *argv[])
{
	int a = 10;
	char c = 'a';
	char *s = "hello, world";
	double d = 100.3666;
	
	printf("a: %d\n", a);//%d整型
	printf("c: %2c--\n", c); //%c宽度为2
	printf("s: %s\n", s); //%s字符串
	printf("d: %.3f\n", d);//%f 浮点数3位小数精度
	printf("s: %10.5s\n", s); //宽度10最多显示5个字符
	printf("s: %-20s\n", s);//左对齐
	
	return 0;
}

运行结果:

a: 10
c:  a--
s: hello, world
d: 100.367
s:      hello
s: hello, world  

标签:字符,int,输入输出,C语言,char,标准,printf,input,输入
From: https://blog.csdn.net/DigitalMohan/article/details/137118693

相关文章

  • C语言程序10题
    第101题(10.0分)          难度:易       第2章/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:计算平均成绩并统计90分以上人数。----------------------......
  • C语言-角谷步数
    题目描述你听说过角谷猜想吗?任意的正整数,比如5,我们从它开始,如下规则计算:如果是偶数,则除以2;如果是奇数,则乘以333再加1。如此循环,最终必会得到1!比如5 的处理过程是:5168421一个正整数经过多少步才能变成1,称为角谷步数。对于5而言,步数也是5。对于1,步数......
  • 关于征集参与《工程售后服务评价技术要求》团体标准起草单位的通知
    根据2023年团体标准管理制修订计划安排,为使标准更具专业性、实用性和可操作性,吸纳行业内有代表性的骨干企业和专家作为起草单位和起草人,现就我单位牵头申报的《工程售后服务评价技术要求》团体标准公开征集起草单位和起草人。一、申请标准起草单位的机构必须具备以下条......
  • C语言链表:链式魔法,数据之美
    导入链表,作为C语言中一种基础且重要的数据结构,以其独特的方式组织和存储数据,成为了解决许多复杂问题的关键。下面,我们将更具体地探讨C语言链表的各个方面。一、链表的基本结构链表由一系列节点组成,每个节点通常包含两部分:数据域和指针域。数据域用于存储实际的数据,而指针域......
  • c语言字符串逆序-基础知识
    c语言字符串逆序(1)错误输出(2)正确输出:方法1(3)正确输出:方法2......
  • C语言中static静态关键字
    在c语言编写代码中,常见的static静态关键字用于修饰局部变量、修饰全局变量和修饰函数方法。本人也将从这三方面对static关键字的用法进行概要解释。修饰局部变量局部变量主要体现在函数方法里面的变量,咱这边直接上代码看区别:①这个是不加static关键字修饰的局部变量:②这个......
  • C语言——指针
    地址是由物理的电线上产生的,能够标识唯一一个内存单元。在C语言中,地址也叫做指针。在32位机器中,有32根地址线。地址是由32个0/1组成的二进制序列,也就是用4个字节来存储地址。在64位机器中,有64根地址线。地址是由64个0/1组成的二进制序列,也就是用8个字节来存储地址。指针类型......
  • c语言程序实验——实验报告四
    c语言程序实验————实验报告四实验项目名称:实验报告2数据描述实验项目类型:验证性实验日期:2024年3月21日一、实验目的1.在熟练掌握if语句和switch语句的基础上,能灵活使用if语句和switch语句进行选择结构的程序设计2.学习调试程序二、实验硬、软件环境Windows......
  • 2_C语言分支与循环
    C语言分支与循环分支break与continueif与elseswitch练习题循环forwhiledowhile练习题分支break与continuebreak:使流程跳到循环体之外,接着执行循环体下面的语句其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。所以:while中的break是用于永久终......
  • 10-输入输出
        各位小伙伴们,大家好,我是酒点。那么咱们这一章给大家讲输入输出函数,我们学习之前有同学接触过的吗?我们来看,关于数据的输出,在C语言当中我们是需要引入一个头文件stdio.h,其实当我们在写第一个程序文件helloworld的时候,我们以及意识到这个文件的作用。当你用到了一些......