首页 > 其他分享 >C语言学习记录(六)————输入输出

C语言学习记录(六)————输入输出

时间:2024-06-09 09:00:26浏览次数:21  
标签:函数 记录 scanf 输入输出 C语言 char printf 格式 输入

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

一位学习C语言的小白,有错误请私信或评论。
本文主要介绍C语言的输入输出~


一、输入输出

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

1.数据输出

C语言无I/O语句,I/O操作由函数实现
#include <stdio.h>
字符输出函数
格式:putchar©
参数:c为字符常量,变量或者表达式
功能:把字符c输出到显示器中
返回值:正常,为显示的代码值

#include <stdio.h>
 int main()
 {
    int c;
    char a;
    c=65;a='B';
    putchar(c);putchar('\n');putchar(a);
 }
运算结果为:
 A
 B

2.格式输出函数

格式:printf(”格式控制符“,输出表)
功能:按指定格式向显示器输出数据
输出表:要输出的数据
格式控制串:包含两种信息
格式说明: % [修饰符]格式字符,用于指定输出格式
普通字符:原样输出
在这里插入图片描述
代码:

	int a  = 245;
    char c = 'a';
    float pi = 3.1415926;
    char hello[] = "hello world";
    printf("%d-%x-%o\n",a,a,a);
    printf("%c\n",c);
    printf("%f-%e-%g\n",pi,pi,pi);
    printf("%s\n",hello);

附加格式说明符

在这里插入图片描述
代码示例:

    int a = 1234;
    float b = 3.1415926;
    char s[] = "hello world";
    printf("%8d %2d\n",a,a);
    printf("%f %9.7f %8.3f\n",b,b,b);
    printf("%s,%15s,%10.5s\n",s,s,s);
    printf("%08d,%0+8d\n",a,a);
    printf("%08f,%0+8f\n",b,b);

3.字符输入函数

字符输入函数getchar
格式:getchar()
功能:从键盘一字符
返回值:正常,返回读取的代码值;出错或结束返回-1

	#include<stdio.h>
	int main()
	{
		char ch;
		ch = getchar();
		printf("%c\n",&ch);
		return 0;
	}

4 格式输入函数

格式:scanf(“格式控制串”,地址表)
功能:按指定格式从键盘读入数据,存入地址表指定存储单元中,并按回车键结束
返回值:正常,返回输入数据个数
地址表:变量的地址,常用取地址运算符&
目前,scanf支持的格式字符很多,比如:
在这里插入图片描述
代码:

	#include<stdio.h>
	int main()
	{
		int a;
		float b;
		char ch;
		scanf("%d",&a);
		scanf("%f",&b);
		scanf("%c",&ch);
		printf("%d,%f,%c\n",a,b,ch);
	}

scanf函数支持的说明符可以带以下修饰符:
在这里插入图片描述

	例1:
	scanf("%2d %*3d%2d",&a,&b);
	若输入1234567
	则a为12,b为78
	例2:
	scanf("%2d %*3d%2d",&a,&b);
	若输入1234567
	则a为12,b为78

说明:
用"%c"格式符时,空格和转义字符作为有效字符输入

	scanf("%c%c%c",&c1,&c2,&c3);
	若输入a b c
	则C1为a,C2为空格,C3为b

总结:输入数据的时候,遇到以下情况认为该函数结束
遇到空格,TAB或回车
遇非法输入
遇宽度结束

5 输入函数垃圾清理

使用输入函数可能会留下垃圾:
int x;
char ch;
scanf("%d",&x);
scanf("%c",&ch);
printf("x =%d ch = %c \n",x,ch);

方法1:用getchar清除

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char a,b;
    scanf("%c",&a);
    getchar();
    scanf("%c",&b);
    printf("%c %c",a,b);
    return 0;
}

方法2:用格式串中空格或“%*c”来 吃掉

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char a,b;
    scanf("%c%*c%c",&a,&b);
    printf("%c-%c",a,b);
    return 0;
}

6 字符串输入输出函数

6.1 字符串输入函数gets

格式:char * gets(char *s)
功能:从键盘输入一以回车结束的字符串放入字符数组中,并自动加 ‘\0’
说明1:输入串长度应小于字符数组维数
说明2:与scanf函数不同,gets函数并不以空格作为字符串输入结束的标志

6.2 字符串输出函数put

格式:int puts(const char *s)
功能:向显示器输出字符串(输出完,换行)
说明:字符数组必须以‘\0’结束


总结

输入输出函数非常实用我们在调试代码,查看代码运行结果时使用,其中格式输入输出最常用,要注意的是scanf在输入字符时会受到空格、tap、回车的影响,gets输入字符串不受空格影响(不结束),puts输出完会自动换行。

标签:函数,记录,scanf,输入输出,C语言,char,printf,格式,输入
From: https://blog.csdn.net/qq_63556165/article/details/139523277

相关文章

  • C语言二叉平衡搜索树
    AVL(二叉平衡搜索树)的概念和思路任意一个节点左子树高度-右子树高度<=1要想让BST保持平衡,必须在每一次插入、删除之后,检查是否其左右子树满足平衡的定义如果不满足,就做“旋转”操作,使其恢复平衡加入以上平衡策略算法后的BST,称为AVL,AVL是一种绝对平衡的二叉树#include......
  • ATcoder ABC 351 补题记录(A~F)
    A按照顺序直接模拟即可。#pragmaGCCoptimize(3)#include<bits/stdc++.h>#defineintlonglong#definepbpush_back#defineememplace_back#defineF(i,x,y)for(inti=x;i<=y;i++)#defineG(i,x,y)for(inti=x;i>=y;i--)#defineW(G,i,x)for(auto&i:G[x......
  • 深度学习入门(鱼书)学习记录 - 第5章 误差反向传播法
    前言:上一章通过数值微分计算神经网络的权重参数的梯度,这种方法比较简单但比较耗时。所以现在介绍另外一种比较高效的方法-- 误差反向传播法目录计算图举例为什么用计算图求解计算图的优点链式法则链式求导反向传播加法节点的反向传播乘法节点的反向传播简单层的......
  • C语言中的指针(1)
    目录指针是什么?指针变量&和*操作符指针变量的类型指针变量的大小指针变量类型的意义void*指针const修饰指针const修饰变量const修饰指针变量指针运算•指针+-整数•指针-指针​编辑​编辑​编辑•指针的关系运算野指针概念成因指针未初始化​编......
  • C语言实验六
    #include<stdio.h>#include<string.h>#defineN3//运行程序输入测试时,可以把这个数组改小一些输入测试typedefstructstudent{intid;//学号charname[20];//姓名charsubject[20];//考试科目doublepe......
  • C语言笔记第12篇:自定义类型(struct结构体)
    1、结构体类型的声明为什么要有自定义的结构类型呢?这是因为稍微复杂的类型,直接使用内置类型是不行的!比如:描述一个人或 一本书的价格、版号等信息。1.1结构的创建结构体是一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量。1.1.1 结构的声明structt......
  • c语言分支循环语句
    与这相关的逻辑运算符和求素数的四种方法都在主页哦 if语句(三种形式)1.无else语句部分1)语法形式if(表达式)语句12)介绍如果表达式为真(成立),则语句执行;如果表达式为假(不成立),则语句不执行。注意:在c语言中,0表示真,非零表示假#include<stdio.h>intmain(){intn=0;scanf......
  • 【ROS使用记录】—— ros使用过程中的rosbag录制播放和ros话题信息相关的指令与操作记
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、rosbag的介绍二、rosbag的在线和离线录制三、rosbag的播放相关的指令四、其他rosbag和ros话题相关的指令总结前言rosbag是ROS(机器人操作系统)中用于记录和回放数据的工具。录制数据可......
  • 数据结构(C语言严蔚敏版)——第二章 线性表
    前言:    对这一章节的学习,我深有体会,只有把链表这一重点弄清楚,才算开始真正的正式学习数据结构,刚开始学习链表的朋友可能会感到有点绕脑,但是当你掌握链表以后,你会发现其实原来学习编程还是很有意思的,慢慢在学习中找到成就感,不断收获。   当然,这章的重点还是在......
  • 记录自己在xss-labs靶场的通关记录
    一:靶场下载及搭建xss-labs下载地址:xss-labs:xss跨站漏洞平台-GitCodephpstudy集成开发环境安装:[靶场环境篇]phpstudy集成环境安装教程(特别详细)_phpstudy集成环境-CSDN博客我们下载完之后,就可以进行xss-labs-master的搭建,我本人下载的phpstudy是2018年版的将xss-......