C lang:character input and output (I/O)
Xx_Introduction
- Character input and output is by more line character conpose of the text flow
- Define name common use capital letter,easy read.
- The Standard C Library ----->provide I/O model ------>use character flow way.
Ax_Application
- file copy,charater count,line count,word count
Bx_Method
- I/O model common use getchar and putchar,interactive use of putchar and printf.
1 getchar() //read next character
2 putcahr() //print next character
3 printf() //print next(bunch) character - File Copy
- file copy version 1
1 #include<stdio.h>
2
3 int main()
4 {
5 int c;
6
7 c = getchar();
8 while(c != EOF){
9 putchar(c);
10 c = getchar();
11 }
12 } - file copy version 2
1 #include<stdio.h>
2
3 int main()
4 {
5 int c;
6
7 while((c = getchar())!= EOF){
8 putchar(c);
9 }
10 }!= : unequal to. priority overtop assignment(=) EOF:end of file
- Conclusion:computer use bit storage of character and any data type.
- Assignment can portion of expression.
- Complex statement simple easy read,but so hard understand.
- Due to unequal to relational operator(!=) priority not overtop assignment(=),so c expression use bracket.
1 #include <stdio.h>
2
3 int main()
4 {
5 int c;
6
7 while (c = getchar() != EOF){
8 printf("%d\n",c);
9 }
10 printf("%d - at EOF\n",c);
11 return 0;
12 }if not use bracket,will priority operation EOF,value by 1,if input end or else print "c - at EOF".
- Print EOF value programming
1 #include <stdio.h>
2
3 int main()
4 {
5 printf("EOF is %d\n",EOF);
6 return 0;
7 }character constant EOF is in <stdio.h> file definition,value by -1
- In other system can by definition other value.
- file copy version 1
- Charater Count(2019-10-8 update)
- Character count version 1
#include <stdio.h> int main()
{
// version 1
long nc; nc = ;
while (getchar() != EOF)
++nc;
printf("%ld\n",nc-);
return ;
}++(--) is operater, be euivalent to eg(nc = nc + 1);impression add one.
- ++(--) use a prefix effect in variable before add.in suffix it's first call variable before use progressive increase.
- Long than int more big,long support 32bit int support 16bit,but different system imparity,long in printf use %ld.
- Character version 2
#include <stdio.h>
int main()
{
double nc;
for (nc = ; getchar() != EOF;++nc)
;
printf("%.0f\n", nc-);
return ;
}double and float use %f format output.double more than float.
- For circulation a circulation body must exsit,null statement for alone semicolon(;).
- Important is circulation in execute programs before must judge test condition whether it meets.
- Character count version 1
- Line Count
- mind:line equal to line break number.
- Line count program
#include <stdio.h>
int main()
{
int c,nl; nl = ;
while ((c = getchar()) != EOF)
if (c == '\n')
++nl;
printf("%d\n",nl);
return ;
}==:mean equal. 'A':mean character constant.corresponding ASCII number.
- Count blanks,tabs,and newlines.
version 1
#include <stdio.h>
int main()
{
int c, nb, nt, nl; nb = ; /* number of blanks */
nt = ; /* number of tabs */
nl = ; /* number of newlines */
while ((c = getchar()) != EOF){
if ( c == ' ')
++nb;
if ( c == '\t')
++nt;
if ( c == '\n')
++nl;
}
printf("blanks:%6d\ntabs:%6d\nnewlines:%6d\n", nb, nt, nl);
return ;
}....>>>
- version 2
#include <stdio.h>
int main()
{
int c, nb, nt, nl; nb = ; /* number of blanks */
nt = ; /* number of tabs */
nl = ; /* number of newlines */
while ((c = getchar()) != EOF)
if ( c == ' ')
++nb;
else ( c == '\t')
++nt;
else ( c == '\n')
++nl; printf("blanks:%6d\ntabs:%6d\nnewlines:%6d\n", nb, nt, nl);
return ;
}but I not successful execute.
- Replace string of blanks with a single blank
- version 1
#include <stdio.h>
#define NONBLANK 'a'
int main()
{
int c, lastc; lastc = NONBLANK;
while (( c = getchar()) != EOF){
if (c != ' ')
putchar(c);
if (c == ' ')
if (lastc != ' ')
putchar(c);
lastc = c;
}
return ;
}one if statement control nonblank output.tow if statement deal with blank.three blank check blank is one or more blank.last print c.
version 2
#include<stdio.h>
#define NONBLANK 'a'
int main()
{
int c, lastc; lastc = NONBLANK;
while ((c = getchar()) != EOF ){
if (c != ' ')
putchar(c);
else if (lastc != ' ')
putchar(c);
lastc = c;
}
return ;
}ok,success!
- version 3
#include <stdio.h> #define NONBLANK 'a'
int main()
{
int c, lastc; lastc = NONBLANK;
while ((c = getchar()) != EOF){
if (c != ' ' || lastc != ' ')
putchar(c);
lastc = c;
}
return ;
}this method use logic simbol (OR) || realize.
ok,this aim at blank deal wilth three method.
- version 1
- Replace tabs and backspaces with visible characters.
- Realize
#include<stdio.h>
int main()
{
int c; while ((c = getchar())!= EOF){
if (c == '\t')
printf("\\t");
if (c == '\b')
printf("\\b");
if (c == '\\')
printf("\\\\");
if (c != '\b')
if (c != '\t')
if (c != '\\')
putchar(c);
}
return ;
}why?//??????????????????????------------------------------program bug.......I brain in the blue screen.so,go to www.baidu.com to find out.
- Truth to version 2
#include<stdio.h>
int main()
{
int c; while ((c = getch())!= EOF){ /*getchar not identify keyboard backspace.*/
if (c == '\t')
printf("\\t");
if (c == '\b')
printf("\\b");
if (c == '\\')
printf("\\\\");
if (c != '\b')
if (c != '\t')
if (c != '\\')
putchar(c);
}
return ;
}getchar not catch backspace so,will getchar replace getch. getch() can catch any print behavior.
oh,yes!
- It can also be used if-else. to version 3
#include <stdio.h>
int main()
{
int c; while((c = getch())!= EOF)
if (c == '\t')
printf("\\t");
else if (c == '\b')
printf("\\b");
else if (c == '\\')
printf("\\\\");
else
putchar(c);
return ;
}ok.next is a word count.
- Realize
- word count
- count input lines,words and strings number.
#include <stdio.h>
#define IN 1
#define OUT 0 int main()
{
int c, nl, nw, nc, state; state = OUT;
nl = nw = nc = ;
while ((c = getchar())!= EOF){
++nc;
if (c == '\n')
++nl;
if (c == ' ' || c == '\n' || c == '\t')
state = OUT;
else if (state == OUT){
state = IN;
++nw;
}
}
printf("lines:%9d\nword:%9d\nstring:%9d\n",nl,nw,nc);
return ;
}&&:AND ||: OR , AND higher priority OR. expression from left to right. a = b = c = 0 if meanwhile include value and assignment two type,order from right to left.
- IF statement
if(expression)
statement1 /* true */
else
statement2 /* false */
else if (expression){
statement1 /* true*/
...
}true or false.
- count input lines,words and strings number.
- Print input one word per line.
- last practical program.very basis.very important.
#include<stdio.h> #define IN 1
#define OUT 0 int main()
{
int c, state; state = OUT;
while ((c = getchar()) != EOF){
if (c == ' ' || c == '\n' || c == '\t'){
if (state == IN){
putchar('\n');
state = OUT;
}
} else if (state == OUT){
state = IN;
putchar(c);
} else
putchar(c);
}
return ;
}state is a BOOL value.
- last practical program.very basis.very important.
Cx_Conclusion
- I/O model common use getchar and putchar,interactive use of putchar and printf.
- File Copy
- Charater Count
- Line Count
- Count blanks,tabs,and newlines.
- Replace string of blanks with a single blank
- Replace tabs and backspaces with visible characters.
- word count
- Print input one word per line.
- getchar and putchar printf().and putch()
- != and ==\=
- ++ / --
- EOF
- LONG and DOUBLE
- while and if else
- ASCII 'A'
- || OR ; && AND
C lang:character input and output (I/O)的更多相关文章
- Python - 3. Input and Output
from:http://interactivepython.org/courselib/static/pythonds/Introduction/InputandOutput.html Input a ...
- 7. Input and Output
7. Input and Output There are several ways to present the output of a program; data can be printed i ...
- [20160704]Addition program that use JOptionPane for input and output
//Addition program that use JOptionPane for input and output. import javax.swing.JOptionPane; public ...
- Python Tutorial 学习(七)--Input and Output
7. Input and Output Python里面有多种方式展示程序的输出.或是用便于人阅读的方式打印出来,或是存储到文件中以便将来使用.... 本章将对这些方法予以讨论. 两种将其他类型的值转 ...
- [Python] Print input and output in table
Print the input and output in a table using prettyTable. from prettytable import PrettyTable import ...
- Input and Output File
Notes from C++ Primer File State Condition state is used to manage stream state, which indicates if ...
- [20171128]rman Input or output Memory Buffers.txt
[20171128]rman Input or output Memory Buffers.txt --//做一个简单测试rman 的Input or output Memory Buffers. 1 ...
- Angular4学习笔记(六)- Input和Output
概述 Angular中的输入输出是通过注解@Input和@Output来标识,它位于组件控制器的属性上方. 输入输出针对的对象是父子组件. 演示 Input 新建项目connInComponents: ...
- Java中的IO流,Input和Output的用法,字节流和字符流的区别
Java中的IO流:就是内存与设备之间的输入和输出操作就成为IO操作,也就是IO流.内存中的数据持久化到设备上-------->输出(Output).把 硬盘上的数据读取到内存中,这种操作 成为 ...
随机推荐
- png兼容IE6的方法
1.通过CSS滤镜使背景图的PNG对IE6进行兼容 定义一个样式,给某个div应用这个样式后,div的透明png背景图片自动透明了. <style> body{background: li ...
- MyCat学习 ------分库分表 随笔
垂直切分.水平切分 1.垂直分库,解决库中表太多的问题. 2.垂直分表,解决表中列太多的问题.例如 商品表 包含 产地.二维码 .时间.价格.各个列.分为不同的小表. 水平切分, 大数据表拆分为小表 ...
- Linux下搭建及配置禅道服务器详细过程-包含软件资源
**1:百度云盘下载: ** 禅道--链接: https://pan.baidu.com/s/1Stu7nOZVIPO5TnpJWjWtiQ 提取码:dnik CentOs操作系统--链接: http ...
- 手撕 JVM 垃圾收集日志
下图是本篇的写作大纲,将从以下四个方面介绍怎么样处理 JVM 日志. 有准备才能不慌 想要分析日志,首先你得有日志呀,对不对.凡是未雨绸蒙总是没错的.所谓有日志的意思,你要把 JVM 参数配置好,日志 ...
- 探究 Nginx 中 reload 流程的真相
今天这篇文章主要来介绍下 Nginx 的 reload 流程.实际上在之前文章中,在更改了 nginx 配置文件时,我们都会执行 nginx -s reload 命令,我们执行这条命令的原因是希望 n ...
- Python3 网络编程和并发编程总结
目录 网络编程 开发架构 OSI七层模型 socket subprocess 粘包问题 socketserver TCP UDP 并发编程 多道技术 并发和并行 进程 僵尸进程和孤儿进程 守护进程 互 ...
- 【JS】307- 复习 Object.assign 原理及其实现
点击上方"前端自习课"关注,学习起来~ }let b = { name: "muyiy", book: { title: " ...
- 用心整理 | Spring AOP 干货文章,图文并茂,附带 AOP 示例 ~
Spring AOP 是 Java 面试的必考点,我们需要了解 AOP 的基本概念及原理.那么 Spring AOP 到底是啥,为什么面试官这么喜欢问它呢?本文先介绍 AOP 的基本概念,然后根据 A ...
- org.eclipse.emf.ecore.xmi.FeatureNotFoundException: Feature 'taglib' not found
tomcat7,部署tomcat6下的项目统,报tomcat 7: IllegalArgumentException: taglib definitionnotconsistentwithspecif ...
- 规范git commit提交记录和版本发布记录
在开发过程中我们一般都会用到git管理代码,在git commit提交代码时我们一般对git commit message随便写点简单的描述,可是随着项目参与人数的增多,发现提交的commit记录越来 ...