C语言中从标准输入读取几行输入,并打印到标准输出上两种方法
来源:互联网 发布:乐清知临寄宿学校招生 编辑:程序博客网 时间:2024/04/30 11:02
C语言中经常遇到要求将标准输出的内容打印到标准输出上的问题。但是如何算是成功的打印到标准输出上却有不同的理解,是输入一行打印一行,还是输入所有之后在将其按顺序打印出来。这两种方式效果完全不同。
方式一:例如:输入: 屏幕上显示:
aaa 1.aaa
bbb 2.bbb
ccc 3.ccc
方式二:或者,输入一行显示一行:
输入 : aaa
屏幕上显示: 1.aaa
输入: bbb
屏幕上显示: 2.bbb
输入: ccc
屏幕上显示: 3.ccc
然两种输出方式不同,对应的代码自然不同:
若想输出方式一:可以采用如下代码
<span style="font-size:18px;">#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ char ch; int For_Switch= 1; int count = 1; int i = 0; while ((ch=getchar())!=EOF) { if (For_Switch == 1) { printf("%d.",count); count++; For_Switch++; } if ('\n'==ch) { For_Switch = 1; } putchar(ch); } return 0;}</span>注:输入一行后,按回车输出一行。其中的For_Switch变量相当于一个起到开关作用的变量。每次遇到'\n'之后,开关
就会打开,所以在每一行的开头都会有序号产生。如果遇不到'\n',那么就按输入的内容输出。
但是我们有时候希望等所有内容都输出之后在逐行输出,那么这有应该怎么做呢?方法就是使用gets()函数和puts()函数。
所以若想输出方式二:可采用如下代码
<span style="font-size:18px;">#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#define LINE 50#define MAX 100int main(){char arr[LINE][MAX]; //定义一个二维数组int i = 0;for ( i = 0; i < LINE; i++){gets(arr[i]);if (arr[i][0]=='\0') //遇到空行跳出循环{break;}}for ( i = 0; arr[i][0]; i++) //此处的条件也可以为arr[i][0]!='\0'{puts(arr[i]);}return 0;}</span>
首先解释一下gets()函数,gets()函数在API中的定义是 char * gets(*buffer),在上面的代码中我们写入gets(arr[i])效果等同于gets(&arr[i][0]),我们将当前行的首地址作为参数传给gets()函数,返回值为参数buffer的首地址。当然gets()函数在遇到错误和内容结束时会返回一个空指针。 gets()函数在接收内容时会接收所有内容包括‘\n’,但是在存储的时候又会将'\n',转换为'\0'存储。等到调用puts()函数的时候又会将'\0'转化为'\n'之后进行输出。
当然在条件中你也可以写成for(i = 0;i<LINE; i++),但是这样写的话如果下面不变那么就容易将许多空行也考虑进去,效率不好。
- C语言中从标准输入读取几行输入,并打印到标准输出上两种方法
- c语言:从标准输入读取几行输入,输入打印到标准输出上,加上行号
- 【c语言】从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号
- 从标准输入行读取输入行并在标准输出中打印这些输入行
- 【C语言】从标准输入读取几行输入,每行输入都要打印到标准输出上,前面加上行号,并使此程序能够处理的输入行的长度没有限制。
- 从标准输入读取几行输入,每行输入都要打印到标准输出上,前面加上行号。
- 从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。
- C语言:标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。行号不能有限制
- 从标准输入复制到标准输出并打印行号
- 编写一个程序,从标准输入读取几行输入。每行输入都要打印到标准输出上,前面要加上行号。
- 程序:从标准输入读取几行输入,每行输入都要打印到标准输出上,前面要加上行号。
- 编写一个程序,从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。
- 从标准输入中读取几行输入,每行输入都要打印到标准输出上,前面要加上行号。在编写这个程序时要是图让程序能够处理的输入行的长度没
- 编写一个程序,从标准输入读取几行输入并把他们打印在标准输出上,它同时应该计算checksum值,并写在字符后面
- 【C语言】编写一个程序,从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。编写这个程序的时候要使这个程序能够处理的输入行的长度没有限制。
- C语言 编写一个程序,从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。在编写这个程序的时候要使这个程序能够处理的输入行的长度没有限制
- 【c语言】编写一个程序,从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。在编写这个程序的时候要使这个程序能够处理的输入行的长度没有限制。
- 从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。在编写这个程序的时候要使用让这个程序能够处理的输入行的长度没有限制。
- C# WinForm程序退出的方法
- 算法之排列与组合算法
- tree命令
- 汉诺塔问题
- c语言实验
- C语言中从标准输入读取几行输入,并打印到标准输出上两种方法
- 实现文字的滚动展示
- IDA Pro动态调试Android so文件
- 二维数组&&指针数组与数组指针
- PHP Function usort
- 数据结构之红黑树
- View的事件传递机制总结
- 1003
- 解释型语言与编译型语言的区别