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. volatile在外设寄存器基地址定义时的作用

    volatile,作用就是告诉编译器不要因优化而省略此指令,必须每次都直接读写其值,这样就能确保每次读或者写寄存器都真正执行到位.——野火

  2. springcloud+kafka集群

    上节说了kafka在linux环境下怎么搭建集群.这节写一下怎么在springcloud中以stream流方式去做kafka集群对接. 1.yml配置 #spring Cloud kafka -- s ...

  3. .Net core_Excel 导出二维码(以导出箱单为例)

    [AccessLogAttribute(Note = "导出条形码箱单 — 条形码")]public ActionResult ExportContract(string INNE ...

  4. RocketMQ 主题扩分片后遇到的坑

    目录 1.案情回顾 1.1 集群现状 1.2.RocketMQ 在线扩容队列 1.3 消息发送 2.问题暴露 3.问题分析 4.问题复盘 消息组接到某项目组反馈,topic 在扩容后出现部分队列无法被 ...

  5. 大数据之Linux网卡配置

    当你安装好一台Linux之后,第一步自然是配置网卡,让你的Linux上网. 配置网卡大多数有两种模式,一种是桥接,一种是NAT 首先讲一下桥接网卡的上网原理,他是等同于在你现有的网络环境上直接现加一台 ...

  6. 信鸽推送Push API

    目录 信鸽推送 push API 0. 基本 push 1. 根据 token list,推送到android和ios 2. 推送到android和ios 所有用户 信鸽推送 push API 参考: ...

  7. MyBatis更新,删除,插入

    UserMapper.java: package com.bjsxt.mapper; import java.util.List; import org.apache.ibatis.annotatio ...

  8. [TimLinux] Python 使用入门

    1. 为什么用Python 软件质量:Python注重可读性.一致性和软件质量. 提高开发者的效率:Python代码的大小往只有C++/Java代码的1/5 ~ 1/3. 程序的可移植性:绝大多数Py ...

  9. 地兵布阵 -----------HDU-1166

    C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况.由于 ...

  10. A.Changing Volume

    题目:改变音量 题意:给定两个数a和b,有6个操作(-5, -2, -1, +1, +2, +5),求a变到b的最小操作次数 操作的过程中不能变到小于0,即音量不能调到小于0 分析: (贪心),我们可 ...