浅谈C语言的输入输出函数

article/2025/10/30 16:42:18

目录

前言

一、通过一个简单的例子,先初始下scanf函数和printf函数(此例子出自于谭浩强老师所著的《C程序设计》第四版)

二、浅谈printf函数

1. printf函数的一般格式

2.格式字符

三、浅谈scanf函数

1.scanf函数的一般形式

2.scanf函数中的格式声明

3。格式字符

4.scanf函数在输入时,需要注意的点

四、浅谈下putchar和getchar函数 

 1.getchar函数的功能

2.getchar函数、scanf函数和printf函数的应用(思路来着比特教育)


 

前言

本人使用CSDN只是希望将我学习到的东西,记录下来,同时分享给大家,大家一起进步!如本文章有哪些地方有错误,请指正。

一、通过一个简单的例子,先初始下scanf函数和printf函数(此例子出自于谭浩强老师所著的《C程序设计》第四版)

有想买C语言基础书的朋友,推荐这本书!!!

例子:求 gif.latex?ax%5E%7B2%7D+bx+c%3D0 方程的根。a,b,c由键盘输入,设 gif.latex?b%5E%7B2%7D-4ac%20%3E0

解题思路:首先要知道求方程式的根的方法。由数学知识已知,如果gif.latex?b%5E%7B2%7D-4ac%20%3E0,则此一元二次方程有两个实数根:

gif.latex?x%3D%5Cfrac%7B-b+sqrt%28b%5E%7B2%7D-4ac%29%7D%7B2a%7D                gif.latex?x%3D%5Cfrac%7B-b-sqrt%28b%5E%7B2%7D-4ac%29%7D%7B2a%7D

gif.latex?p%3D%5Cfrac%7B-b%7D%7B2a%7D                                     gif.latex?q%3D%5Cfrac%7Bsqrt%28b%5E%7B2%7D%29-4ac%7D%7B2a%7D

gif.latex?x1%3Dp+q                                             gif.latex?x2%3Dp-q

 代码如下:

#include<stdio.h>
#include<math.h>
void main() {//求ax^2 + bx + c = 0方程的两个根。//输入输出举例double a = 0, b = 0, c = 0;printf("请输入a,b,c的值\n");scanf("%lf%lf%lf", &a, &b, &c);double p = -b / (2 * a), q = sqrt((pow(b, 2) - 4 * a * c)) / (2*a);double x1 = p + q, x2 = p - q;printf("x1=%7.2lf,x2=%7.2lf", x1, x2);
}

代码运行结果如下 

ac8264d3768947e4ba66dcd545c82e65.png

代码解释如下:

  • 用scanf函数输入a,b,c的值,请注意在scanf函数中括号内变量a,b,c的前面,要用地址符&,即&a,&b,&c。&a表示变量a在内存中的地址。该scanf函数表示从终端输入的3个数据分别送到地址为&a,&b,&c的存储单元,也就是赋值给变量a,b,c。双撇号内用%lf格式声明,表示输入的是双精度型实数。
  • 在scanf函数中,格式声明为“%lf,%lf,%lf”,连续3个“%lf”。要求输入三个实数。在输入数据时应该注意必须要1(空格)3(空格)4,用空格来对他们进行区分,回车和tab键也可以对他们进行分离(scanf函数的具体内容,等到下面讲)。
  • 在printf函数中,不是简单地使用%f格式声明,而是格式符f的前面加上了“7.2”,表示在输出x1和x2时,指定数据占7列(小数点也算一位),其中小数位置占2列。这样做的好处是:可以根据实际需要来输出小数的位数,因为并不是任何时候都需要6位小数。

 

二、浅谈printf函数

1. printf函数的一般格式

printf(格式控制,输出序列)例如:printf("aaa=%d",a);

  1. “格式控制”是用双撇号括起来的一个字符串,称“转换控制字符串”,简称“格式字符串”。它包含了两个信息:①格式声明。格式声明由“%”和格式字符组成,如:%d,%f等等。它的作用是将输出的数据转换为指定的格式然后输出。格式声明总是由“%”字符开始的。②普通字符。普通字符即需要在输出时原样输出的字符。例如上面的printf函数中双撇号中的aaa=,也可以包含其他字符。
  2. 下面是printf函数的使用
#include<stdio.h>//printf函数的实用必须预编译命令“stdio.h”头文件
void main()
{int a = 1;
//其中的“a=”是普通字符,%d是格式声明(其中的d是格式字符),a为输出列表
//“a = %d”是格式控制printf("a = %d",a);
}

2.格式字符

printf常用的格式字符

格式字符说明
d,i以带符号的十进制形式输出整数(正数不输出符号)
o以八进制无符号形式输出整数(不输出前符号0)
x,X以十六进制无符号形式输出整数(不输出前符号0x),用x则输出十六进制数的a~f时以小写形式输出,用X则输出十六进制数的A~F时以小写形式输出
u以无符号十进制形式输出整数
c以字符形式输出,只输出一个字符
s输出字符串
f以小数形式输出单、双精度数(最好用%lf),隐含输出6位小数
e,E以指数形式输出实数,用e时指数以“e”表示(1.2e+02),用E时指数以“E”表示(如:1.2E+02)
g,G选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0.用G时,若以指数形式输出,则指数以大写表示
p输出一个变量的地址(注意:输出地址,变量前面必须要有取地址符&)

printf函数中用到的格式附加字符

字符说明
l用于长整型整数,可加在格式符d、o、x、u前面
m(代表一个正整数)数据最小宽度
n(代表一个正整数)对实数,表示输出n位小数;对字符串,表示截取的字符个数
-输出的数字或字符在域内向做靠

三、浅谈scanf函数

1.scanf函数的一般形式

scanf(格式控制,地址表列)

“格式控制”的含义同printf函数。“地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。

2.scanf函数中的格式声明

scanf("%d%d%d",&a,&b,&c);//&:取地址符

注意:地址表列是变量的地址,而不是变量名

3。格式字符

scanf函数中所用到的格式字符

格式字符说明

d,i

用来输入有符号的十进制整数
u用来输入无符号的十进制整数
o用来输入无符号的八进制整数
x,X用来输入无符号的十六进制整数(大小写作用相同)
c用来输入单个字符
s用来输入字符串,将字符串送到一个字符数组中,在输入时以非空字符开始,以第一个空白字符结束,字符串以串的结束标志‘\0’作为其最后一个字符
f用来输入实数,可以用小数形式或指数形式输入(在输入时不能指定精度)
e,E,g,G与f作用相同,e与f,g可以互相替换(大小写作用相同)

4.scanf函数在输入时,需要注意的点

(1)整数或者浮点数在输入时,无论scanf函数中的格式控制的%d与%d直接有没有空格,我们都因该用空格、tab键或者回车来将行分开。代码如下:

91a223036d6b443faac9c1e4cbf62fa1.png

(2)如果是%d在输入时遇到了字符型,那么%d就自动停止,如果%d接下来还有个%c,那么该字符常量就会对应到%c中,赋值给字符变量。代码如下:

ad9511f0ed7e4652bcc1684707fb5198.png

 (3)在键盘输入数据时,我们的格式一定要与scanf函数中的转化控制字符串的样式一致,除非是scanf函数是scanf("%d%d%d",a,b,c);,如果是这一种形式,那么我们就可以用空格、回车或者tab键进行分开。代码如下:

09e2b31c880d4fe9a48ecd75eb8b8c01.png

f175234714284d1881688b29d14e5378.png

 

四、浅谈下putchar和getchar函数 

 1.getchar函数的功能

059626496e5b4d828d13f10e07d241d1.png

 表示从一个流中,或者是一个标准的输入中,读取一个字符。

 

793d9e08849544f8a9ac16712c1e9ca8.png

 如果在读取时,遇到文件错误或者读取到一个EOF的话,也就返回一个EOF(EOF在定义中位-1),因为ASCII码没有负数

 

24414f40084a4ca9bb3aa01c0f8ce562.jpeg

返回值类型都是int类型!!!

 

2.getchar函数、scanf函数和printf函数的应用(思路来着比特教育)

例题1:从键盘输入密码(用scanf函数实现),接着确认输入的密码是否正确(用getchar函数获取),正确输出登录成功,错误输出登录失败。

代码如下:

ccaf833f15c04b84b117edd055f90eb5.png

 

 改良后的代码如下:

0d3443c1ca8f40cc81a349204120a859.png

 

 


http://chatgpt.dhexx.cn/article/3knBvQdQ.shtml

相关文章

C 语言编程 — 输入输出操作

目录 文章目录 目录标准输入输出getchar() / putchar() 单个字符输入输出scanf() / printf() 格式化字符串输入输出sprintf() 输出字符串到字符数组snprintf() 安全的输出字符串到字符数组format 格式化 文件输入输出fopen() / fclose() 打开/关闭文件fgetc() / fputc() 读写单…

c语言--输入输出

c语言本身没有输入输出语句 格式化输出 %o :八进制 %x :十六进制 %d :十进制 %m.nf :输出的数字总共占有m个&#xff0c;其中n个为小数&#xff0c;在左边补零 %-m.nf :在右边补空格 %0md:在左边补上0得到m个数字 int main(){printf("s1*%5s*\n","chi")…

c语言 --- 基本输入输出

printf 函数 #include <stdio.h> C语言标准输入输出头文件 printf做原样打印&#xff0c;把要打印的东西作为参数 代码的行数不影响显示结果的行数 //函数 //printf("要打印的内容"); //一行的形式 printf("ILoveYou"); printf("ILoveYou&q…

C语言中的输入输出

在C语言中提供了许多内置的输入输出函数。 标准文件的定义 在C语言中会把所有设备当文件来处理。为了访问键盘和屏幕&#xff0c;以下三个文件会在程序执行时而打开。 标准文件文件指针设备标准输入stdin键盘标准输出stdout屏幕标准错误stderr屏幕 C 语言中的输入/输出通常使用…

C语言的输出

1&#xff1a;%c&#xff0c;%s的区别&#xff1f; %c在C语言中代表字符型格式符&#xff1b;结尾没有\0。 %s在C语言中代表字符串型格式符&#xff1b;结尾有\0。 %c和%s一般用在printf、sprintf等字符串格式化函数中&#xff0c;用于决定格式化参数的数据类型。如printf(&q…

C语言字符串输入输出函数

C语言字符串输入输出函数 putchar()函数getchar()函数puts()函数gets()函数getche()函数getch()函数 putchar()函数 格式: putchar( c )功能&#xff1a;向终端输出一个字符注意&#xff1a;输出的时候不会加回车 getchar()函数 格式&#xff1a;字符型变量&#xff1d;getc…

C语言基本输入输出

文章目录 前言一、数据类型二、基本输出1.printf函数的基本用法2.printf函数的格式化输出A. d 格式符B. c 格式符C. f 格式符D. e 格式符3.putchar函数的基本用法 三、基本输入1.scanf函数的基本用法A. scanf含有非输入控制符B. 多个scanf同时使用 总结 前言 本文主要介绍C语言…

C语言数据输入输出函数

文章目录 前言一、字符输入输出函数1.字符输出函数2.字符输入函数 二、格式输出函数printf()1.格式输出函数的一般形式2.格式控制 三、格式输入函数scanf()1.格式输入函数的一般形式&#xff1b;2.格式控制 四、字符串输入输出函数1.字符串输出函数puts()2.字符串输入函数gets(…

C语言的输入与输出

目录: 格式声明 基本的格式字符 附加的格式说明字符&#xff08;输出&#xff09;和&#xff08;输入&#xff09; 一、格式声明&#xff1a; 格式声明的一般形式为百分号&#xff08;&#xff05;&#xff09;的格式字符。 二、基本的格式字符。 1、%d: 表示以带符号的十进…

C语言程序——字符的输入和输出

文章目录 前言一、字符的输入和输出二、程序实例1.程序代码2.运行结果3.结果分析 三、拓展应用总结 前言 使用stdio库中提供的字符输入输出函数的时候&#xff0c;需要在程序中包含stdio.h的预处理命令&#xff0c;这样编译系统才能够调用库中的函数进行输入和输出。 一、字符…

C语言的基本的输入输出

C语言的基本的输入输出 printf()函数 在头文件stdio.h中scanf()函数 在头文件stdio.h中 printf()函数 在头文件stdio.h中 printf()函数是格式化输出函数&#xff0c;一般用于向标准输出设备按照规定格式输出信息。 printf()函数的格式为: printf("<格式化字符串>&q…

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…