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.
  • 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.
  • 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.

  • 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.

  • 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.

  • 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.

Cx_Conclusion

  1. I/O model common use getchar and putchar,interactive use of putchar and printf.
  2. File Copy
  3. Charater Count
  4. Line Count
  5. Count blanks,tabs,and newlines.
  6. Replace string of blanks with a single blank
  7. Replace tabs and backspaces with visible characters.
  8. word count
  9. Print input one word per line.
  10. getchar and putchar printf().and putch()
  11. != and ==\=
  12. ++ / -- 
  13. EOF
  14. LONG and DOUBLE
  15. while and if else
  16. ASCII 'A'
  17. || OR  ; && AND

C lang:character input and output (I/O)的更多相关文章

  1. Python - 3. Input and Output

    from:http://interactivepython.org/courselib/static/pythonds/Introduction/InputandOutput.html Input a ...

  2. 7. Input and Output

    7. Input and Output There are several ways to present the output of a program; data can be printed i ...

  3. [20160704]Addition program that use JOptionPane for input and output

    //Addition program that use JOptionPane for input and output. import javax.swing.JOptionPane; public ...

  4. Python Tutorial 学习(七)--Input and Output

    7. Input and Output Python里面有多种方式展示程序的输出.或是用便于人阅读的方式打印出来,或是存储到文件中以便将来使用.... 本章将对这些方法予以讨论. 两种将其他类型的值转 ...

  5. [Python] Print input and output in table

    Print the input and output in a table using prettyTable. from prettytable import PrettyTable import ...

  6. Input and Output File

    Notes from C++ Primer File State Condition state is used to manage stream state, which indicates if ...

  7. [20171128]rman Input or output Memory Buffers.txt

    [20171128]rman Input or output Memory Buffers.txt --//做一个简单测试rman 的Input or output Memory Buffers. 1 ...

  8. Angular4学习笔记(六)- Input和Output

    概述 Angular中的输入输出是通过注解@Input和@Output来标识,它位于组件控制器的属性上方. 输入输出针对的对象是父子组件. 演示 Input 新建项目connInComponents: ...

  9. Java中的IO流,Input和Output的用法,字节流和字符流的区别

    Java中的IO流:就是内存与设备之间的输入和输出操作就成为IO操作,也就是IO流.内存中的数据持久化到设备上-------->输出(Output).把 硬盘上的数据读取到内存中,这种操作 成为 ...

随机推荐

  1. 转:轻松把玩HttpClient之封装HttpClient工具类(一)(现有网上分享中的最强大的工具类)

    搜了一下网络上别人封装的HttpClient,大部分特别简单,有一些看起来比较高级,但是用起来都不怎么好用.调用关系不清楚,结构有点混乱.所以也就萌生了自己封装HttpClient工具类的想法.要做就 ...

  2. git 使用详解(5)—— get log 查看提交历史

    git log 查看 提交历史 在提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,可以使用 git log 命令查看. 接下来的例子会用我专门用于演示的 simplegit 项目,运行下面 ...

  3. [TimLinux] asciinema Linux终端录制工具嵌入私有web中

    yum install asciinema https://github.com/asciinema/asciinema-player # 下载asciinema-player.css, asciin ...

  4. MyBatis系列(四) MyBatis 增删改

    前言 通过前几张的博文已经知道MyBatis是如何查询数据库中的数据,现在来介绍增(insert)删(delete)改(update) 增加 接口绑定文件定义一个增加方法,方法的返回值为long,在M ...

  5. Grafana基础

    一.Grafana基础 Grafana是一个开源的指标量监测和可视化工具.官方网站为:https://grafana.com/, 常用于展示基础设施的时序数据和应用程序运行分析.Grafana的das ...

  6. 如何正确的探索 Microsoft Ignite The Tour

    Microsoft Ignite The Tour 是一年一度微软为全球开发者.IT专家.安全专家以及数据专家提供的为期两天,包含众多核心产品的实践性技术培训.2019.12.10-2019.12.1 ...

  7. JAVA可视化闹钟源码

    概述 一些同学的Java课设有这样一个问题,比较感兴趣就做了一下 功能介绍: 1.可增加闹钟 2.可删除闹钟 3.时间到了响铃 4.关闭闹钟不会丢失闹钟(因为闹钟存储在txt文件中,不会因程序关闭就终 ...

  8. 面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)

    Redis 面试题 1.什么是 Redis?. 2.Redis 的数据类型? 3.使用 Redis 有哪些好处? 4.Redis 相比 Memcached 有哪些优势? 5.Memcache 与 Re ...

  9. Java中的两种异常类型是什么?他们有什么区别?

    一.Throwable是所有异常的根,java.lang.Throwable Error是错误,java.lang.Error Exception是异常,java.lang.Exception 二.E ...

  10. Bootstrap模板-Amaretti.2.6.2

    密罐地址: 点我下载