C语言文字艺术之数据输入输出

目录
  • 语句
  • 字符数据输入输出
    • 字符数据输出
    • 字符数据输入
  • 字符串输入输出
    • 字符串输出函数
    • 字符串输入函数
  • 格式输出函数
  • 格式输入函数
  • 顺序程序设计应用

语句

C语言的语句用来向计算机系统发出操作指令。一条语句编写完成经过编译后产生若干条机器指令。实际程序中包含若干条语句,因此语句的作用就是完成一定的操作任务。

字符数据输入输出

字符数据输出

字符数据输出使用的是putchar函数,作用是向显示设备输出一个字符。该函数的定义为:

int putchar( int ch );

使用时要添加头文件stdio.h,其中的参数ch是要进行输出的字符,可以是字符型变量或整型变量,也可以使用常量。例如输出一个字符A的代码如下:

putchar('A');

使用putchar函数也可以输出转义字符,例如输出字符A:

putchar('\101');

【实例5.1】 使用putchar函数实现字符数据输出。在程序中使用putchar函数,输出字符串“Hello”并且在字符串输出完毕之后进行换行。

#include<stdio.h>
int main()
{
char cChar1,cChar2,cChar3,cChar4; /*声明变量*/
cChar1='H'; /*为变量赋值*/
cChar2='e';
cChar3='l';
cChar4='o';
putchar(cChar1); /*输出字符变量*/
putchar(cChar2);
putchar(cChar3);
putchar(cChar3);
putchar(cChar4);
putchar('\n'); /*输出转义字符*/
return 0;
}

字符数据输入

字符数据输入使用的是getchar函数,此函数的作用是从终端(输入设备)输入一个字符。getchar函数与putchar函数的区别在于没有参数。

该函数的定义为:

int getchar();

使用getchar函数时也要添加头文件stdio.h,函数的值就是从输入设备得到的字符。例如从输入设备得到一个字符赋给字符变量cChar:

cChar=getchar();

【实例5.2】 使用getchar函数实现字符数据输入。在本实例中,使用getchar函数获取在键盘上输入的字符,再利用putchar函数进行输出。本实例演示了将getchar作为putchar函数表达式的一部分,进行输入和输出字符的方式。

#include<stdio.h>
int main()
{
char cChar1; /*声明变量*/
cChar1=getchar(); /*在输入设备得到字符*/
putchar(cChar1); /*输出字符*/
putchar('\n'); /*输出转义字符换行*/
getchar(); /*得到回车字符*/
putchar(getchar()); /*得到输入字符,直接输出*/
putchar('\n'); /*换行*/
return 0; /*程序结束*/
}

【实例5.3】 使用getchar函数取消获取回车符。

#include<stdio.h>
int main()
{
char cChar1; /*声明变量*/
cChar1=getchar(); /*在输入设备得到字符*/
putchar(cChar1); /*输出字符*/
putchar('\n'); /*输出转义字符换行*/
/*将此处getchar函数删掉*/
putchar(getchar()); /*得到输入字符,直接输出*/
putchar('\n'); /*换行*/
return 0; /*程序结束*/
}

字符串输入输出

字符串输出函数

字符串输出使用的是puts函数,作用是输出一个字符串到屏幕上。

该函数的定义为:

int puts( char *str );

使用该函数时,先要在其程序中添加stdio.h头文件。其中,形式参数str是字符指针类型,可以用来接收要输出的字符串。例如使用puts函数输出一个字符串:

puts("I LOVE CHINA!");  /*输出一个字符串常量*/

这行语句是输出一个字符串,之后会自动进行换行操作。这与printf函数有所不同,在前面的实例中使用printf函数进行换行时,要在其中添加转义字符'\n'。puts函数会在字符串中判断“\0”结束符,遇到结束符时,后面的字符不再输出并且自动换行。例如:

puts("I LOVE\0 CHINA!");  /*输出一个字符串常量*/

在上面的语句中加上“\0”字符后,puts函数输出的字符串就变成:I LOVE。

【实例5.4】 使用字符串输出函数显示信息提示。在本实例中,使用puts函数对字符串常量和字符串变量都进行操作,在这些操作中观察使用puts函数的方式。

#include<stdio.h>
int main()
{
char* Char="ILOVECHINA"; /*定义字符串指针变量*/
puts("ILOVECHINA!"); /*输出字符串常量*/
puts("I\0LOVE\0CHINA!"); /*输出字符串常量,其中加入结束符'\0'*/
puts(Char); /*输出字符串变量的值*/
Char="ILOVE\0CHINA!"; /*改变字符串变量的值*/
puts(Char); /*输出字符串变量的值*/
return 0; /*程序结束*/
}

字符串输入函数

字符串输入函数使用的是gets函数,作用是将读取字符串保存在形式参数str变量中,读取过程直到出现新的一行为止。其中新的一行的换行字符将会转化为字符串中的空终止符“\0”。gets函数的定义如下:

char *gets( char *str );

在使用gets字符串输入函数前,要为程序加入头文件stdio.h。其中的str字符指针变量为形式参数。例如定义字符数组变量cString,然后使用gets函数获取输入字符的方式如下:

gets(cString);

在上面的代码中,cString变量获取到了字符串,并将最后的换行符转化成了终止字符。

【实例5.5】 使用字符串输入函数gets获取输入信息。

#include<stdio.h>
int main()
{
char cString[30]; /*定义一个字符数组变量*/
gets(cString); /*获取字符串*/
puts(cString); /*输出字符串*/
return 0; /*程序结束*/
}

格式输出函数

前面章节的实例中常常使用格式输入输出函数scanf和printf。其中printf函数就是用于格式输出的函数,也称为格式输出函数。

printf函数的作用是向终端(输出设备)输出若干任意类型的数据。printf函数的一般格式为:

printf(格式控制,输出列表)

括号内包括两部分:

格式控制:格式控制是用双引号括起来的字符串,此处也称为转换控制字符串。其中包括两种字符,一种是格式字符,另一种是普通字符。

格式字符:格式字符用来进行格式说明,作用是将输出的数据转化为指定的格式输出。格式字符是以 “ % ” 字符开头的。 普通字符是需要原样输出的字符,其中包括双引号内的逗号、空格和换行符。       输出列表

输出列表中列出的是要进行输出的一些数据,可以是变量或表达式。

例如,要输出一个整型变量时:

int iInt=10;

printf("this is %d",iInt);

执行上面的语句显示出来的字符是this is 10。在格式控制双引号中的字符是this is %d,其中的this is字符串是普通字符,而%d是格式字符,表示输出的是后面iInt的数据。

由于printf是函数,“格式控制”和“输出列表”这两个位置都是函数的参数,因此printf函数的一般形式也可以表示为:

printf(参数1,参数2,……,参数n)

函数中的每一个参数按照给定的格式和顺行依次输出。例如,显示一个字符型变量和整型变量:

printf("the Int is %d,the Char is %c",iInt,cChar);

下表列出了有关printf函数的格式字符。

 【实例5.6】 使用格式输出函数printf。在本实例中,使用printf函数对不同类型变量进行输出,对使用printf函数所用到的输出格式进行分析理解。

#include<stdio.h>
int main()
{
int iInt=10; /*定义整型变量*/
char cChar='A'; /*定义字符型变量*/
float fFloat=12.34f; /*定义单精度浮点型*/
printf("the int is: %d\n",iInt); /*使用printf函数输出整型*/
printf("the char is: %c\n",cChar);/*输出字符型*/
printf("the float is: %f\n",fFloat);/*输出浮点型*/
printf("the stirng is: %s\n","I LOVE YOU"); /*输出字符串*/
return 0;
}

【实例5.7】 在printf函数中使用附加符号。(在本实例中,使用printf函数的附加格式说明字符,对输出的数据进行更为精准的格式设计。

#include<stdio.h>
int main()
{
long iLong=100000; /*定义长整型变量,为其赋值*/
printf("the Long is %ld\n",iLong);/*输出长整型变量*/
printf("the string is: %s\n","LOVE");/*输出字符串*/
printf("the string is: %10s\n","LOVE");/*使用m控制输出列*/
printf("the string is: %-10s\n","LOVE");/*使用-表示向左靠拢*/
printf("the string is: %10.3s\n","LOVE");/*使用n表示取字符数*/
printf("the string is: %-10.3s\n","LOVE");
return 0;
}

格式输入函数

与格式输出函数printf相对应的是格式输入函数scanf。该函数的功能是指定固定的格式,并且按照指定的格式接收用户在键盘上输入的数据,最后将数据存储在指定的变量中。

scanf函数的一般格式为:

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

通过scanf函数的一般格式可以看出,参数位置中的格式控制与printf函数相同。例如%d表示十进制的整型,%c表示单字符。而在地址列表中,此处应该给出用来接收数据变量的地址。例如得到一个整型数据的操作:

scanf("%d",&iInt);  /*得到一个整型数据*/

在上面的代码中,&符号表示取iInt变量的地址,因此不用关心变量的地址具体是多少,只要在代码中在变量的标识符前加&符号,就表示取变量的地址。

【实例5.8】 使用scanf格式输入函数得到用户输入的数据。在本实例中,利用scanf函数得到用户输入的两个整型数据,因为scanf函数只能用于输入操作,所以若在屏幕上显示信息则使用显示函数。

#include<stdio.h>
int main()
{
int iInt1,iInt2; /*定义两个整型变量*/
puts("Please enter two numbers:");/*通过puts函数输出提示信息的字符串*/
scanf("%d%d",&iInt1,&iInt2); /*通过scanf函数得到输入的数据*/
printf("The first is : %d\n",iInt1);/*显示第一个输入的数据*/

printf("The second is : %d\n",iInt2);/*显示第二个输入的数据*/
return 0;
}

在printf函数中除了格式字符还有附加格式用于更为具体的说明,相应地,scanf函数中也有附加格式用于更为具体的格式说明,如下表所示。

表示指定的输入项在读入后不赋给相应的变量

顺序程序设计应用

【实例5.10】 计算圆的面积。在本实例中,定义单精度浮点型变量,为其赋值为圆周率的值。得到用户输入的数据并进行计算,最后将计算的结果输出。

#include<stdio.h>
int main()
{
float Pie=3.14f; /*定义圆周率*/
float fArea; /*定义变量,表示圆的面积*/
float fRadius; /*定义变量,表示圆的半径*/
puts("Enter the radius:"); /*输出提示信息*/

scanf("%f",&fRadius); /*输入圆的半径*/

fArea=fRadius*fRadius*Pie; /*计算圆的面积*/

printf("The Area is: %.2f\n",fArea); /*输出计算的结果*/
return 0; /*程序结束*/
}

【实例5.11】 将大写字符转化成小写字符。本实例要将一个输入的大写字符转化成小写字符,需要对其中的ASCII码的关系有所了解。将大写字符转化成小写字符的方法就是将大写字符的ASCII码转化成小写字符的ASCII码。

#include<stdio.h>
int main()

{
char cBig; /*定义字符变量,表示大写字符*/
char cSmall; /*定义字符变量,表示小写字符*/
puts("Please enter capital character:");/*输出提示信息*/
cBig=getchar(); /*得到用户输入的大写字符*/
puts("Minuscule character is:"); /*输出提示信息*/
cSmall=cBig+32; /*将大写字符转化成小写字符*/
printf("%c\n",cSmall); /*输出小写字符*/
return 0; /*程序结束*/
}

其中,用于单个字符的输入、输出时,使用的是getchar和putchar函数,而gets和puts函数用于输入、输出字符串,并且puts函数在遇到终止符时会进行自动换行。为了能输出其他类型的数据,可以使用格式输出函数printf和格式输入函数scanf。在这两个格式函数中,利用格式字符和附加格式字符可以更为具体地进行格式说明。

到此这篇关于C语言文字艺术之数据输入输出的文章就介绍到这了,更多相关C语言数据输入输出内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C语言实现模拟USB对8bit数据的NRZI编码输出

    USB的NRZI编码方式,将原数据进行处理,原数据为0时,编码成电平翻转,原数据为1时,编码成电平不翻转,USB要发送数据的时候,硬件把数据流转化成为NRZI编码,然后经过USB的差分线D+和D-将数据发送出去,接收方在接收数据的后做逆处理,要注意的是,在没有数据传输的时候,也就是空闲的时候,数据线是保持高电平的,这点一定要注意,很多书上就是一笔代过,根本不知道为什么! 在USB的头部有一个同步域,由7个0组成,当编码成NRZI的时候,就是一串0101010的方波了,而方波的频率就是发送的波特率

  • C语言数据输入与输出实例详解

    C语言数据输入与输出实例详解 1 概论 C语言提供了跨平台的数据输入输出函数scanf()和printf()函数,它们可以按照指定的格式来解析常见的数据类型,例如整数,浮点数,字符和字符串等等.数据输入的来源可以是文件,控制台以及网络,而输出的终端可以是控制台,文件甚至是网页. 2 数据输出 从第一个c语言程序中,就使用了跨平台的库函数printf实现将一段文字输出到控制台,而实际上,printf()不仅可以将数据按照指定的格式输出到控制台,还可以是网页或者是指定的文件中,printf()函数执

  • 如何使用C语言将数字、字符等数据写入、输出到文本文件中

    目录 1.首先需要声明一个文件指针变量 2.接下来需要对这个指针变量进行初始化 3.然后开始利用相应函数将数据写入文件 4.最后一步,也是关键的一步 总结 最近在调试程序,想把过程中需要查看的数据输出到文件中,因此将简单的小方法分享一下 1.首先需要声明一个文件指针变量 FILE* fp; 2.接下来需要对这个指针变量进行初始化 fp = fopen("在这里填写你自己的路径", "这里填写读写方式"); 现在介绍一下路径填写和C语言中的读写方式: 路径示例:&qu

  • C语言数据结构实现链表逆序并输出

    C语言数据结构实现链表逆序并输出 将一个链表逆序并输出.我用了两种方法来实现,第一种是借助了一个新的空链表:第二种是在原来链表的基础上直接实现逆序. 实例代码: 头文件: #include <stdio.h> #include <stdlib.h> #include <malloc.h> typedef int ElemType; typedef struct Node {//结点结构 ElemType value; //值域 struct Node *next;//指

  • C语言文字艺术之数据输入输出

    目录 语句 字符数据输入输出 字符数据输出 字符数据输入 字符串输入输出 字符串输出函数 字符串输入函数 格式输出函数 格式输入函数 顺序程序设计应用 语句 C语言的语句用来向计算机系统发出操作指令.一条语句编写完成经过编译后产生若干条机器指令.实际程序中包含若干条语句,因此语句的作用就是完成一定的操作任务. 字符数据输入输出 字符数据输出 字符数据输出使用的是putchar函数,作用是向显示设备输出一个字符.该函数的定义为: int putchar( int ch ); 使用时要添加头文件st

  • C语言二进制思想以及数据的存储

    我们平时使用的数字都是由 0~9 共十个数字组成的,例如 1.9.10.297.952 等,一个数字最多能表示九,如果要表示十. 十一.二十九.一百等,就需要多个数字组合起来. 例如表示 5+8 的结果,一个数字不够,只能"进位",用 13 来表示:这时"进一位"相当于十,"进两位"相当于二十. 因为逢十进一,也因为只有 0~9 共十个数字,所以叫做十进制(Decimalism). 进制也就是进位制.在进行加法(减法)运算时,逢X进(借)一就是X

  • php读取二进制流(C语言结构体struct数据文件)的深入解析

    尽管php是用C语言开发的,不过令我不解的是php没有提供对结构体struct的直接支持.不过php提供了pack和unpack函数,用来进行二进制数据(binary data)和php内部数据的互转: 复制代码 代码如下: string pack ( string $format [, mixed $args [, mixed $...]] )   //Pack given arguments into binary string according to format.  array unp

  • go语言通过zlib压缩数据的方法

    本文实例讲述了go语言通过zlib压缩数据的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import (     "fmt"     "compress/zlib"     "bytes" ) func main() {     var input = []byte("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKsAAAAgCAYAA

  • Go语言中如何确保Cookie数据的安全传输

    什么是Cookie Cookie(也叫Web Cookie或浏览器Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上.通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态.Cookie使基于无状态的HTTP协议记录稳定的状态信息成为了可能. Cookie主要用于以下三个方面: 会话状态管理(如用户登录状态.购物车.游戏分数或其它需要记录的信息) 个性化设置(如用户自定义设置.主题等) 浏览器行为跟踪(如

  • 关于R语言lubridate包处理时间数据的问题

    加载包 # install.packages(lubridate) library(lubridate) 第一个函数ymd():解析日期为年月日格式 x <- c("09-01-01", "09-01-02", "09-01-03") ymd(x) [1] "2009-01-01" "2009-01-02" "2009-01-03" x <- c("2009-01-

  • R语言学习笔记缺失数据的Bootstrap与Jackknife方法

    目录 一.题目 二.解答 a)Bootstrap与Jackknife进行估计 b)均值与变异系数(大样本)的标准差解析式推导与计算 c)缺失插补前的Bootstrap与Jackknife d)比较各种方式的90%置信区间情况(重复100次实验) 填补之前进行Bootstrap或Jackknife 填补之后进行Bootstrap或Jackknife 一.题目 下面再加入缺失的情况来继续深入探讨,同样还是如习题1.6的构造方式来加入缺失值,其中a=2, b = 0 我们将进行如下几种操作: 二.解答

  • R语言刷题检验数据缺失类型过程详解

    目录 题目 解答 下面考虑三种情况: 1. a = 0, b = 0 2. a = 2, b = 0 3. a = 0, b = 2 题目 解答 由于题目要求需要重复三次类似的操作,故首先载入所需要的包,构造生成数据的函数以及绘图的函数: library(tidyr) # 绘图所需 library(ggplot2) # 绘图所需 # 生成数据 GenerateData <- function(a = 0, b = 0, seed = 2018) { set.seed(seed) z1 <- r

  • C语言超详细讲解数据结构中双向带头循环链表

    目录 一.概念 二.必备工作 2.1.创建双向链表结构 2.2.初始化链表 2.3.动态申请节点 2.4.打印链表 2.5.销毁链表 三.主要功能 3.1.在pos节点前插入数据 尾插 头插 3.2.删除pos处节点数据 尾删 头删 3.3.查找数据 四.总代码 List.h 文件 List.c 文件 Test.c 文件 五.拓展 一.概念 前文我们已经学习了单向链表,并通过oj题目深入了解了带头节点的链表以及带环链表,来画张图总体回顾下: 在我们学习的链表中,其实总共有8种,都是单双向和带不带

  • C语言详细图解浮点型数据的存储实现

    目录 在引入知识之前,先来看一个案例,就知道了解浮点型数据存储的重要性与必要性. 举个例子: #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int num = 9; float *pnum = (float *)&num;//强制转换类型 printf("n的值为:%d\n",n); printf("*pFloat的值为:%f\n",*pnum); *pnum =

随机推荐