C语言基本输入输出

article/2025/10/30 17:10:37

文章目录

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


前言

本文主要介绍C语言如何实现把数据进行输入输出并列举一下常见的小错误。


提示:以下是本篇文章正文内容,下面案例可供参考

一、数据类型

众所周知,计算机中的数据是存放在存储单元中的,数据是由010101…组成。与我们现实中学的数学相对应,数可以分为实数,虚数,然后继续分类…。那么计算机子中的数据也可以进行分类,我们依据数据的存储形式以及存储单元的长度对数据进行划分,划分的结果(依据C99标准)可以参考下图。

在这里插入图片描述

对于数据类型以下说明:

  • 整形变量是以补码的形式存贮到内存当中;
  • 不同的数据类型在内存中的占据空间是不同的,对Visual C++而言,char型占据1个字节,int型占据4个字节;
  • 上图中标黄色的是字符型(char),这里强调一下:字符型是借助ASCII码存贮到我们的计算机内存当中,而与字符相对应地ASCII码是整数,例如‘a’字符对应的是整数97,空格字符对应的是整数32,也就是字符和整数本质是一样的所以将字符型划到整型中

二、基本输出

1.printf函数的基本用法

printf的用法
printf(“字符串”)
printf(输出控制符,输出参数)
printf(多个输出控制符,多个输出参数)
printf(输出控制符和非输出控制符,输出参数)

2.printf函数的格式化输出

A. d 格式符

d格式符用于格式化输出十进制(decmial)字符,使用方法是%nd,n代表字符占据的长度
如果n>0,则使得输出字符向右对齐,字符长度小于n的值,则用空格补齐;如果n<0,则反之;

代码如下(示例):

#include <stdio.h>
int main(void){int i;i = 12345;printf("%10d\n",i);return 0;
}
//输出结果如下12345

B. c 格式符

c(char)的控制符和d用法相同,这里我们用‘a’和97用于字符的输出,得到的一样的结果(‘a’的ASCII码是97),这就证实了字符和整数的本质是一样的,以相同的二进制代码存贮到内存当中;

#include <stdio.h>
int main(void){char ch = 'a';int i = 97;printf("%5c\n",ch);printf("%5c\n",i);return 0;
}
//输出结果如下aa

C. f 格式符

f控制符也具有上面控制符的属性,不同的是%m.nf,其中m的代表是输出的数据的宽度(和上面类似正的是右对齐,负的是左对齐),而n则是要保留的小数的位数;

#include <stdio.h>
int main(void){float i;i = 1/3.0;printf("%5.2f\n",i);return 0;
}
//输出结果如下0.33

D. e 格式符

e控制符用于将数字转化为科学计数形式%m.ne,其中m仍是输出结果的长度,n是保留的小数的位数;

#include <stdio.h>
int main(void){float i;i = 1000/3.0;printf("%10.2e\n",i);return 0;
}
//输出结果如下3.33e+02

3.putchar函数的基本用法

putchar函数用于输出单个字符,我们可以向它传递字符型变量或整型变量,例如‘a’和97,二者输出结果相同;

#include <stdio.h>
int main(void){char ch = 'a';putchar(ch);putchar(97);return 0;
}
//输出结果如下
aa

三、基本输入

1.scanf函数的基本用法

scanf函数是C语言中的输入函数,一般形式为sacnf(‘输入控制符’,输入参数),这里的输入参数是以一个变量地址为变量,例如&i;关于scanf函数有以下几点说明:

  • scanf函数中采用输入控制符,原因是因为我们通过键盘输入到计算机中的数据类型全部为字符(char型),例如输入:987,我们直观上认为是九百八十七数字,实际上计算器理解的是‘9’,‘8’,‘7’三个字符,所以为了实现我们最初的目的将九百八十七输入到计算机中,所以要将字符格式转化,使用‘%d’化为十进制(decimal);
  • 关于scanf函数的输入参数,输入参数是组成是‘取地址运算符+要取地址的变量’即‘&i’,相当于将获取的数据存入以变量 i 地址为地址的变量中,也就是将获得数值赋值给变量i;
  • 关于scanf函数的读取问题,scanf函数若采用%d作为输入控制符,则读取所有的数字直到出现字符不是数字为止:scanf函数若采用%c作为输入控制符,则只读取第一个字符char;

A. scanf含有非输入控制符

scanf含有非输入控制符时,必须把非输入控制符进行输入;

代码如下(示例)

#include <stdio.h>
int main(void){int i,j,k;scanf("i = %d j = %d k = %d",&i,&j,&k);printf("%d,%d,%d\n",i,j,k);return 0;
}
//输出结果如下
i = 1 j = 2 k = 3
1,2,3

B. 多个scanf同时使用

示例一:

#include <stdio.h>
int main(void){int i,j;char c1,c2;scanf("%d %d",&i,&j);scanf("%c %c",&c1,&c2);printf("i = %d,j = %d,c1 = %c,c2 = %c\n",i,j,c1,c2);return 0;
}
//输出结果如下
1 2 a b
i = 1,j = 2,c1 =  ,c2 = a

为什么c1和c2不按照我们预想的输出?这是因为我们从键盘中的输入都是字符,空格回车都是字符,所以第二个scanf先获取了空格字符然后再获取了a字符。

示例二:

# include<stdio.h>
int main(void){int i,j;scanf("%d",&i);printf("i = %d\n",i);scanf("%d",&j);printf("j = %d\n",j);return 0;
}
//输出结果如下
123m
i = 123
j = 32766

上面的代码也是用了两个scanf函数,我们想要获得用户的输入,但是如果我们输入的不只是数字还有字符,这样程序的输出结果也会出错。例如上面输入的123m,第一个scanf获得123并通过第一个printf正确输出,但是第二个scanf获得了123后面的字符m,由于第二个字符的格式控制符是‘%d’,所以无法进行正确的格式转化所以输出异常的结果,那么如何修改上面的程序?请参考下面的程序。

# include<stdio.h>
int main(void){int i,j;char ch;scanf("%d",&i);printf("i = %d\n",i);//借助while循环实现防出错while ((ch = getchar()) != '\n')continue;scanf("%d",&j);printf("j = %d\n",j);return 0;
}

总结

关于字符的格式化输出,可以和我的另一篇文章python内置函数之format()进行类比,举一反三。


http://chatgpt.dhexx.cn/article/0Rk6sabK.shtml

相关文章

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…

空字符串、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;实际应用上是字符串结尾自动补上的一个字符 有的时候用来判断是否到了字符串结尾 而空格字符…