C语言的基本的输入输出

article/2025/10/30 20:35:20

C语言的基本的输入输出

  • printf()函数 在头文件stdio.h中
  • scanf()函数 在头文件stdio.h中

在这里插入图片描述

printf()函数 在头文件stdio.h中

printf()函数是格式化输出函数,一般用于向标准输出设备按照规定格式输出信息。
printf()函数的格式为:
printf("<格式化字符串>",<参量表>);
printf()函数的另一种函数格式为:
int printf(const char *format, 参量表) 函数把输出写入到标准输出流 stdout ,并根据提供的格式产生输出。
其中格式化字符串包括两部分的内容:
(1)一部分是正常的字符,这些字符将按照原样输出。
(2) 另一部分是格式化字符,以"%"号开始,后面跟一个或几个格式参数,用来确定 输出内容的格式。
参量表:
参量表是需要输出的一系列参数,其个数必须与前面的格式化字符串中的格式参数个数一样多
,参量表里的各参数用 " , "符号分开,且参量表里的顺序与前面的格式化参数一 一对应。否则
会出现一些意想不到的错误。
printf函数对参量表中各量求值的顺序是自右至左进行的。
但是必须注意,求值顺序虽是自右至左,但是输出顺序还是从左至右,
printf()函数的返回值为实际控制输出的字符数
例:在这里插入图片描述
可以看出第一个printf()它输出了100,总共3个字符,返回值为3。
在这里插入图片描述
可以看出第一个printf()的返回值为4,这是因为输出的有100还有\n总共4个字符所以返回值为4.
在这里插入图片描述
输出了两个空格加100加\n总共6个字符。
下面举一下printf()输出的例子:
在这里插入图片描述
hello+空格是正常的字符按原样输出,后面的按照格式参数控制输出。
例:
在这里插入图片描述
分析一下:输出语句从内到外依次输出,345先输出,345是三个字符,所以输出3,3是一个字符输出1。

scanf()函数 在头文件stdio.h中

scanf()函数是格式化输入函数,它从标准输入设备(键盘)读取输入的信息。
scanf()函数的格式为:
scanf("<格式化字符串>",<地址表>);
scanf()函数的另一种函数格式为:
int scanf(const char *format, <地址表>) ;函数从标准输入流 stdin 读取输入,并根据提供的 format 来浏览输入。
其中格式化字符串包括三部分的内容:
(1)格式说明符:格式化说明符与printf()函数中的格式说明符基本相同。
(2) 空白字符:空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。
(3) 非空白字符:一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。

注意: 地址表是需要读入的所有变量的地址,而不是变量本身。
如果是一般的变量,通常要在变量前加上一个" & “(取地址符);但输出时是变量名。
如果是数组,用数组名就代表了该数组的首地址。
如果是指针,直接用指针名本身,不要加” * "。

返回值: scanf()的返回值是成功匹配并赋值的输入项个数。如果读入数据时遇到了“文件结束”则返回EOF(-1)。
在这里插入图片描述

例子:

在这里插入图片描述
赋值了两个返回值为2。
在这里插入图片描述
可以看出:空格自动剔除掉了(这里的空格被剔除是因为格式不是字符,如果是字符就是另一种情况),“ ,”非空白字符在输入时是必须按照格式化字符串的格式输入,它也被剔除了。
在这里插入图片描述
这里输出为这样是因为,把1给a,空格给b,2给了c。
在输入字符数据时。若格式控制串中无非格式字符,则认为所有输入的总符号均为有效符。
在这里插入图片描述
这里输出这个是因为:把1给a,空格因为格式控制字符串里有剔除了,把2给b,这时候会有疑问,接下来有好几个空格
就算一个被剔除了还有好几个可以给c,为啥是把3给呢?,这是因为scanf()再剔除空格时如果是连续的一并剔除了直到
是非空格赋值。
如果在格式控制中加入空格作为间隔,则输入时各数据之间可加空格。
下面举一个比较重要的例子:
在这里插入图片描述
运行该程序,输入一个字符’ 1 ‘后回车(要完成输入必须回车),在执行scanf("%c",&a); 时’1’赋值给了a
但是回车符(\n)仍然留在缓冲区内,执行语句scanf("%c",&b);时,回车符(\n)赋值给了b。
要解决有两种方法:
(1)
将两个scanf()语句合并到一块。 例:scanf("%c%c",&a,&b);
(2)
可以加一个清除缓冲区的函数fflush(stdin)。
或:自己写一个
while(c=getchar()!=’\n’)
解释:最后一次的字符 ’ \n '导致循环不满足,退出循环了,但这时getchar()已经执行了,也就是说,最后一个字符 ’ \n ’
也读到了,那这一行的剩余字符就都读掉了,所以这样做也可以消除缓冲区中的剩余字符。
在这里插入图片描述

C语言中,scanf("%d", &a),在设计这个语法结构时为什么要有地址符&,没有行不行?
答:
scanf是要把输入的东西赋给参数,但是c语言是值传递,这样函数内部的a和你传给它的a
不是同一个变量,达不到赋值的目的。所以要取地址来操作这样才能改变a的值。


http://chatgpt.dhexx.cn/article/TjoScRXo.shtml

相关文章

C语言 基本输入输出函数

1 几组常见的输入输出函数 在stdio.h头文件中内置了几种输入输出函数&#xff0c;如下列出&#xff1a; printf 与 scanfgetchar 与 putchargets 与 puts 相比之下 printf 与 scanf的功能最为强大&#xff0c;但操作稍显复杂&#xff0c;后两种则功能简单&#xff0c;但针对…

C语言的输出和输入

一、输出 printf 函数被成为格式输出函数&#xff0c;是按照用户指定的格式&#xff0c;把指定的数据显示到显示屏上。 printf 函数调用形式为&#xff1a;printf ("格式控制字符串"&#xff0c;输出表列)&#xff1b; 格式控制字符串可分为格式字符串和非格式字符串…

C语言数据输入与输出

1.输入与输出举例 例一&#xff1a;求abxc0方程的根。a,b,c由键盘输入&#xff0c;设-4ac>0 编写程序&#xff1a; 结果输出&#xff1a; 注&#xff1a;1.输入输出是以计算机主机为主体而言的. 2.C语言本身不提供输入输出语句。 3.要在程序文件的开头用预处理指令#includ…

C语言的输入、输出

C语言的输入与输出 一、scanf() 和 printf() 函数实例运行结果 二、getchar() 和 putchar() 函数实例1运行结果实例2运行结果 三、gets() 和 puts() 函数实例运行结果 一、scanf() 和 printf() 函数 实例 #include <stdio.h>int main() {char a[100];printf("Plea…

C语言中的输入和输出

一、数据的输入 在C语言中&#xff0c;有三个函数可以从键盘获得用户输入 getchar&#xff1a;输入单个字符&#xff0c;保存到字符变量中 gets&#xff1a;输入一行数据&#xff0c;保存到字符串变量中 scanf&#xff1a;格式化输入函数&#xff0c;一次可以输入多个数据&…

C语言详解-输入输出

1. 输入输出一览 以下输入输出库函数的操作主要在标准输入输出设备&#xff08;键盘和屏幕&#xff09;与数据缓冲区之间进行。 1.1 printf()与scanf () printf(): 将指定的文字/字符串输出到标准输出设备(屏幕)。 注意宽度输出和精度输出控制 scanf(): 从标准输入设备(键盘…

None、Null与空字符‘‘什么区别

1. None 表示空无一物&#xff0c;啥也没有存储。 编程语言里采用None 比如在python中None不是一个保留关键字&#xff0c;只是NoneType对象的一个实例。 空就是空&#xff0c;它不是整型&#xff0c;不是浮点型&#xff0c;也不是字符串&#xff0c;就是一个NoneType。所以在…

关于“空”string字符串

string a ""; string b ""; string c string.Empty; string d string.Empty; string e null; string f null;等运行完后在即时窗口中用&命令查看这些变量的地址 然后发现&#xff0c;所有变量的栈地址都不同&#xff08;废话&#xff09;&#x…

空字符串、NULL、空格串的区别

1、表示区别 string str1 ""; //空字符串 str1.length() 等于 0 string str2 null; //NULL string str3 " "; //空格串 str2.length() 等于 1 2、内存区别 "" &#xff1a;分配了内存 &#xff0c;分配了一个空间 null…

如何输入带空格的字符串

转载自&#xff1a;https://www.cnblogs.com/houchen/p/10356396.html 问题一&#xff1a;带空格的字符串输入(c) 对于string类 getline(cin, str) 对于字符数组 方法一&#xff1a;getline() 读入整行数据&#xff0c;使用回车键输入的换行符来确定输入结尾。 调用方法&am…

C++ 空字符

C 空字符 本来想定义一个空的字符&#xff0c;想当然的就写成了下面的样子&#xff1a; #include <iostream>using namespace std; int main() {char ch ;cout<<ch<<endl;return 0; } 运行直接报错 加上\0 就对了 &#xff0c; 哎 基础呀。。。。。 #i…

【Java】Java中空字符的写法

首先要明确空字符和空格字符的区别 空字符表示数据为空&#xff1b; 空格字符表示数据不为空&#xff0c;为一个空格字符。 Java和C中使用\0表示空字符&#xff0c;Python使用表示空字符。 public class Test {public static void main(String[] args) {char s[] new char[…

MySQL中的空值 Null 和空字符‘‘

目录 1. 空值 Null 和空字符 2. 空值 Null 和空字符 在查询方式上的对比2.1. 创建 SQL 脚本2.2. 查询 username 列为空字符串 的所有数据2.3. 查询 username 列为空值 null 的所有数据2.3.1. 错误 SQL2.3.2. 正确 SQL 2.4. 查询 username 列不为空值 null 的所有数据2.4.1. 错…

空字符'\0'与字符串

from&#xff1a; https://blog.csdn.net/bairenxinmo/article/details/17662983 空字符\0 空字符即NUL字节&#xff0c;是一个ASCII值为0的控制字符&#xff0c;在程序代码中通常以转义序列\0表示&#xff0c;在C语言中&#xff0c;空字符非常重要&#xff0c;主要体现在字符…

空字符和空格字符有什么区别?

char ch1 \0 ,ch2 ;System.out.println(""(int)ch1);System.out.println(""(int)ch2); 运行结果 由此可见&#xff0c;空字符(\0)的ascii值是0&#xff0c;实际应用上是字符串结尾自动补上的一个字符 有的时候用来判断是否到了字符串结尾 而空格字符…

认真理清 一一空字符('\0')、空指针(NULL)、\0、0

在C/C语言中我们经常看到’\0’、NULL。从概念上看两者完全不同&#xff0c;但是本质上他们都可以用数值0来表示。空指针是指针类型&#xff0c;而空字符是整形类型&#xff0c;两者有时很容易混淆。 NULL 空指针有一个值&#xff0c;该值不会与任何数据的有效值地址对应。通…

空字符 空格字符(字符) 空字符串 NULL的区别

【1】 空字符 空格字符&#xff08;字符&#xff09;【2】空字符串 【3】 NULL的区别 1.1 字符 &#xff08;1&#xff09;首先必须明确字符型&#xff08;char&#xff09;是整数类型&#xff0c;其在内存单元是以整数形式存放。 &#xff08;2&#xff09;其次&am…

CSS属性值的计算过程

属性值的计算过程 一个元素一个元素依次渲染&#xff0c;顺序按照页面文档的树形目录结构进行 渲染每个元素的前提条件&#xff1a;该元素的所有CSS属性必须有值 一个元素&#xff0c;从所有属性都没有值&#xff0c;到所有的属性都有值&#xff0c;这个计算过程&#xff0…

Java 反射设置/获取对象属性值

✨大家好&#xff0c;我是【zhuzicc】~ &#xff0c;一位主攻【Java】的 攻城狮&#xff01;✨ 欢迎对【Java】感兴趣的大佬&#xff0c;关注我 &#x1f61c; ———————————————— ❤️ ❤️ ❤️ 如果觉得本文还不错&#xff0c;点赞 评论 关注 收藏。有补充…