拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

C语言-----输入和输出

C语言-----输入和输出 目录1、格式化输入输出1.1 格式化输出函数-----printf()1.2 格式控制字符1.3 格式化输入函数-----scanf()2. 字符输入输出2.1 字符输出函数-----putchar()2.2 字符输入函数-----getchar()3. 字符串输入输出3.1 字符串输出函数-----puts()3.2 字符串输入函数-----gets()本篇博客主要对标准的输入输出函数进行详解分别是输入( printf )输出( scanf )函数、字符输入( getchar )输出( putchar )函数、字符串输入( gets )输出( puts )函数等。1、格式化输入输出格式化是指按照一定的格式格式化输入输出就是指按照一定的格式读取来自输入设备的数据和向输出设备输出数据。符合格式化输入输出的代表函数是printf()函数和scanf()函数。这两个函数是程序中用的最多的输入输出函数。在前面的程序控制结构和语句(1) 中虽然已经初步的了解printf()输出函数和scanf()输入函数但是对其详细知识点没有展开的学习。本博客将深入学习这两个函数的详细用法。1.1 格式化输出函数-----printf()printf()函数作用是将计算机中的数据按照特定的格式输出到终端使用户能从终端查看数据它是输出数据的接口。其使用格式如下printf(格式化字符,参数列表);例如#includestdio.h int main() { int value 6; char ch w; float f 2.0; printf(%d %c %f\n,value,ch,f);/*输出变量并换行*/ }注意使用这两个函数时必须包含头文件“stdio.h”sdio.h是standardinputoutput的缩写。没有参数时调用格式如下printf(非格式字符串);有参数时调用格式如下printf(格式字符,参数列表)使用这种格式时格式字符串内包含一个或多个格式控制字符。格式控制字符以“ % ”开头紧跟其后的 d、s、f、 等字符用以说明输出数据的类型。格式控制字符的个数与参数列表中参数的个数相等并且一 一对应输出时用参数来代替对应的格式控制字符。参数可以是变量也可以是表达式等。1.2 格式控制字符在上面的程序中所使用的%d、%c 和%f 就是格式控制字符。除了这些还有很多下表所示就是 C 语言程序中常用的格式控制字符。格式控制字符含义d以十进制形式输出整数值o以八进制形式输出整数值x以十六进制形式输出整数值u以无符号数形式输出整数值c输出字符值s输出字符串f输出十进制浮点数e以科学计数法输出浮点数g等价于%f或%e输出两者中占位较短的。格式控制字符的使用方法1. d 格式控制字符1 %d以十进制形式输出整。2 %md与%d 相比用 m 限制了数据的宽度是指数据的位数。当数据的位数小于 m 时以前面补空格的方式输出反之如果位数大于m则按原数输出。3%ld输出长整型的数据其表示数据的位数比%d 多。2. u 格式控制字符1%u以十进制形式输出无符号的整数。2%mu与%md 类似限制了数据的位数。3%lu与%ld 类似输出的数据是长整型范围较大。3. f 格式控制字符1%f以小数形式输出实数整数部分全部输出小数部分为6位。2%m.nf以固定的格式输出小数m 指的是包括小数点在内的数据的位数n是指小数的位数。当总的数据位数小于m 时数据左端补空格如果大于m则原样输出。3%-m.nf除了%m.nf的功能以外还要求输出的数据向左靠齐右端补空格。4. c 格式控制字符输出单个字符 。5. s 格式控制字符输出字符串 。%s、%ms和%-ms 与前面介绍的几种用法相同故省略。在此介绍%m.ns 和%-m.ns两种。1%m.ns输出m位的符从字符串的左端开始截取 n 位的字符如n小于m位则左端补空格。为了促进理解例如#includestdio.h int main() { int value 6; char ch[20] wwwwwww; float f 2.01; printf(%8.7s\n, ch);/*输出变量并换行*/ }2(2)%-m,ns:与%mns相比是右端补空格。6. o 格式控制字符以八进制形式表示数据。即把内存中数据的二进制形式转换为八进制后输出。由于二进制中有符号位那么就把符号位也作为八进制的一部分输出。7. x 格式控制字符以十六进制形式表示数据。与%o 一样也把二进制中的符号位作为十六进制中的一部分输出。8.格式控制字符以指数形式输出数据。9.g格式控制字符%e和%f 中自动选择宽度较小的一种格式输出。1.3 格式化输入函数-----scanf()scanf()函数把从终端读取的符合特定格式的数据输入计算机程序中使用是输入数据的接口。函数调用格式为scanf(格式化字符,地址列表);例如#includestdio.h int main() { int i 0; int j 0; scanf(%d, i); /*把输入的数据赋值给变量 i */ scanf(%d %d, i, j); /*这样写的话输入数据的格式是:输入一个数据、空格、再输入一个数据分别把这两个数据赋值给 i 和 j */ return 0; } 是地址操作符。它的作用是和对scanf()函数的理解变量是存储在内存中的变量名就是一个代号内存为每个变量分配一块存储空间当然存储空间也有地址也可以说成是变量的地址。但是计算机怎么找到这个地址呢 这就要用到地址操作符在的后面跟上变量就能获取计算机中变量的地址。其实scanf函数的作用就是把输入的数据根据找到的地址存入内存中也就是给变量赋值。有人可能会说那你开始不是给他它们初始化为0了吗变量里面不是有内容了吗把输入的字符再放进去不会出错吗其实计算机是这样的当把一个数据放入一个内存空间里时会自动覆盖里面的内容。所以变量保存的是最后输进的值。2. 字符输入输出2.1 字符输出函数-----putchar()putchar 函数把单个字符输出到标准输出设备。调用格式为putchar(variable);/*variable 是一个变量*/例如#includestdio.h int main() { int i 67; /*定义一个整型变量*/ char ch C; /*定义一个字符变量*/ putchar(i); /*数字 67 的 ASCII是大写字母 C*/ putchar(\n); /*换行效果屏幕不显示*/ putchar(ch); /*输出字符变量*/ putchar(\n); putchar(C); /*输出字符常量*/ return 0; }使用 putchar 函数可以输出字符变量、字符常量也可以使用转义字符起到一些特殊的作用。在这里putchar(ch) 和 printf(%c,ch)的作用是一样的都是输出字符变量的值。而 printf(\n)和 putchar(\n)的作用是相同的都是换行。不光是换行只要是转义字符这两种形式的作用就是相同的。注意 直接输出字符常量或转义字符时printf 函数里面的是双引号而putchar函数里面的是单引号。2.2 字符输入函数-----getchar()getchar 函数从标准输入设备上读取单个字符返回值是字符。调用格式为getchar();例如#includestdio.h int main() { char ch 0;/*初始化变量*/ ch getchar();/*字符输入*/ putchar(ch);/*输出变量*/ putchar(\n);/*换行*/ return 0; }输入字符的语句chgetchar()和scanf(%c,ch)的作用一样输出字符的语句putchar(ch)和printf(%c,ch)的作用相同putchar(\n)是换行。3. 字符串输入输出我们在编程的时候经常要对字符进行操作但是和字符串的操作相比字符的使用相对要少的多就像我们用英语单词语句比单独用 26 个字母的概率大很多一样。所以对字符串起作用的函数是我们必须掌握的。puts 函数和 gets 函数就是对字符串操作的输入输出函数。3.1 字符串输出函数-----puts()puts 函数向标准输出设备输出已经存在的字符串并换行。函数调用格式为puts(s);/*s 为字符串变量*/例如#includestdio.h int main() { char str[] hello world!;/*定义一个数字储存了一串字符串*/ char* sNULL; /*定义一个指针变量初始化为空*/ s hello world!; /*指针指向一个字符串*/ puts(str);/*输出字符串*/ puts(s);/*输出字符串*/ return 0; }格式里的字符串变量s在这里是数组 str 和指针 s。puts() 函数的作用与printf(%s\n,s)相同-----输出字符串并换行。注 意①数组是同一类型的数据的集合指针是用来表示内存地址的。后面会独立的介绍在这里只要知道数组变量和指针变量可以存储字符串就行了。②puts()函数在遇到\0时就会被替换为 \n实现换行。3.2 字符串输入函数-----gets()gets 函数读取标准输入设备输入的字符直到回车结束。函数调用格式为gets();例如#includestdio.h int main() { char str[26] { 0 }; char *s NULL;/*定义一个数组和一个指针变量*/ gets(str);/*获取输入的字符串*/ gets(s);/*获取输入的字符串*/ puts(str);/*输出字符串*/ puts(s);/*输出字符串*/ return 0; }注意①用 gets 函数获取的字符串一般是放在字符变量里也是使用数组变量和指针变量。gets 函数除了有输入字符的功能外还有换行的作用。②scanf()函数和gets()函数有明显区别scanf函数在遇到空格、回车、空白符时结束输入gets ()函数仅在遇到回车时结束输入。
返回列表