精华内容
下载资源
问答
  • 一、C语言的main函数 常见形式: int main() { … return 0; } 实际上main函数应该为: int main(int argv, char* argv[]) ...printf(): fprintf(stdin,"") 标准输入流----------->键盘输入 s...

    一、C语言的main函数
    常见形式:
    int main()
    {

    return 0;
    }
    实际上main函数应该为:
    int main(int argv, char* argv[])
    {
    argc表示参数个数
    argv[] 表示参数字符串,有多少个参数就有几个字符串

    return 0;
    }
    话不多说,直接上图自己体会
    源码
    在这里插入图片描述
    运行结果
    在这里插入图片描述

    二、标准I/O流和error流
    前者由后者封装而成
    printf(): fprintf(stdin,"") 标准输入流----------->键盘输入
    scanf(): fscanf(stdout,"%d" ,&i) 标准输出流--------->终端输出
    fprintf(stderr,"");输出错误信息,标准错误流--------->输出错误信息
    iotest.c

    #include <stdio.h>
    
    int main()
    {
        int i,j;
    	
    fprintf(stdout,"请输入i:\n");
    	
    fscanf(stdin,"%d",&i);
    	
    fprintf(stdout,"请输入j:\n");
    	
    fscanf(stdin,"%d",&j);
    
    if(0 == j)
    {
        printf("%d/%d=%d \n",i,j,i/j);
    }else {	
        fprintf(stderr,"j != 0\n");
        return 1;//错误流的返回值是个非0整数
    
    }
    return 0;
    }
    

    编译好的可执行文件时,可用重定向符号

    >输出重定向覆盖
    >>输出重定向追加
    <输入重定向覆盖
    <<输入重定向追加
    0<in.txt     0表示标准输入流信息重定向到in.txt 
    1>out.txt    1表示标准输出流信息重定向到out.tx
    2>err.txt    2表示标准错误流信息重定向到err.txt
    

    我们可以看到in.txt里是两个数,我们要把他作为输入流信息给函数
    在这里插入图片描述
    在这里插入图片描述
    可以看到,输入重定向后,我们并没有手动输入,而是函数直接用in.txt里的数据进行计算;
    而当输出重定向后,我们在屏幕上看不到运行结果,因为它们输出在了out.txt文件里

    现在我们把in.txt里的数改为2 和0
    在这里插入图片描述
    正常输出的信息和程序运行错误的信息分别输出到了不同文件

    可见在把标准错误流重定向输出到err.txt文件后,当除数为0时,错误信息没有输出到屏幕上,而是输出到err.txt里了。

    $?表示命令的的返回值,一个命令或程序运行成功或失败都会有返回值,比如执行成功则为0,失败就可能是各种非0的整数了,这要看程序的源代码里是怎么写的。

    在理解了标准IO流和重定向的概念后,我们就可以进一步学习管道的知识了

    展开全文
  • 一般情况下,由键盘输入的字符并没有直接送入程序,而是被存储在一个缓冲区当中。下面这篇文章主要给大家介绍了关于C语言输入输出流与缓冲区的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
  • C语言标准输入输出重定向

    千次阅读 2018-07-13 18:26:01
    标准输入重定向:freopen("a.txt","r"...#endif在加了这句,本地调试的时候从文件读取输入数据,在线测试的时候还是从标准输入读取输入数据 标准输出重定向:freopen("b....

    函数freopen            头文件: stdio.h/cstdio

    标准输入重定向:

    freopen("a.txt","r",stdin);

    有了这句以后cin, scanf, getc, gets都从文件”a.txt”里来啦

    这个在OJ里特别有用

    #ifndef ONLINE_JUDGE
    	freopen("E.txt","r",stdin);
    #endif

    在加了这句,本地调试的时候从文件读取输入数据,在线测试的时候还是从标准输入读取输入数据

     

    标准输出重定向:

    freopen("b.txt","w",stdout);

    有了这句以后cout, printf, putc, puts都写到文件”b.txt”里去啦


    展开全文
  • 1、,1,第3章 标准输入与输出,3.1 概述,3.2 字符输入输出函数,3.3 格式化输入和输出函数,3.4 输入和输出函数的讨论,.,2,通过终端输入(如键盘、鼠标等),也称为标准输入(standard input),直接向终端输出(如显示器、...

    《c语言 输入和输出》由会员分享,可在线阅读,更多相关《c语言 输入和输出(22页珍藏版)》请在人人文库网上搜索。

    1、,1,第3章 标准输入与输出,3.1 概述,3.2 字符输入输出函数,3.3 格式化输入和输出函数,3.4 输入和输出函数的讨论,.,2,通过终端输入(如键盘、鼠标等),也称为标准输入(standard input),直接向终端输出(如显示器、打印机等),也称为标准输出(standard output)。,3.1 概述,C语言本身没有提供输入输出语句,C语言中的所有I/O操作都是通过函数调用来实现,而这些并非C语言一部分的输入输出函数均以目标级程序的方式提供,并存放在一个C标准函数库中。,每一个标准库都有一个相应的头文件,该头文件包含了该库中所有函数的函数原型及其相关信息。在调用这些库函数时,。

    2、要用预处理命令“#include”将有关的“头文件”包括到用户源程序中。标准输入输出库函数对应的头文件是“stdio.h”。stdio是standard input printf(Please input the data: ); scanf(“%dn”, ,问题: 被要求输入两个数才能正常结束,原因: 程序要求输入空白符,而空白符是数据的定界符,.,20,2标准输入流中残留字符问题,/* 本程序测试标准输入流中残留字符的情况 */ #include int main(void) int a; char c; scanf(%d, ,注:在这里输入一个整数并按回车键后,程序就输出了结果!,.,21,1234,n,a,1234,A,注:在这里输入一个整数1234并按回车键后,就相当于1234n,这个n就输入给字符变量c!,.,22,本章全部练习都要做.做在练习本上。

    展开全文
  • C语言标准输入输出缓冲区

    万次阅读 2018-07-08 22:21:05
    注: 以下实验环境为Ubuntu 18.04LTS(只有64bit),gcc (Ubuntu ...我们以printf函数和stderr为例,先说明stdout(对应printf)是遇到换行符或缓冲区满之后或程序结束后才输出缓冲,stderr一般是无缓冲的: /* ...

    欢迎关注我的主页
    注: 以下实验环境为Ubuntu 18.04LTS(只有64bit),gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0

    缓冲区例子

    我们先来说说什么是C语言中的缓冲,直接来看一个例子体会一下就知道了。我们以printf函数和stderr为例,先说明stdout(对应printf)是遇到换行符或缓冲区满之后或程序结束后才输出缓冲,stderr一般是无缓冲的:

    /*
    ** 在我的实验环境中,缓冲区大小默认为1024
    */
    #include <stdio.h>
    
    int main()
    {
      while(1) {
        printf(".");
        fprintf(stderr, "1");
      }
      
      return 0;
    }
    

    运行结果
    (你可以数数,有1024个1,然后1024个’.’,…)
    或者你可以通过用./a.out > t 2>&1重定向标准输出和错误到文件t中,这样就可以很容易看到运行结果(因为程序跑的很快,很难找到开始运行出来的那一行),这时的缓冲区大小是4096个字节。

    缓冲区解释

    C语言的标准输入输出是分缓冲和无缓冲的。这里面缓冲分为全缓冲和行缓冲。

    • 全缓冲: 全缓冲是指当缓冲区满了才进行 I/O 的读写操作。一般磁盘文件是全缓冲的(缓冲区一般为4096个字节)。
    • 行缓冲: 行缓冲是指遇到换行符(即’\n’)后进行 I/O 操作,当然缓冲区满了也要进行操作。注意:换行符也被读入缓冲区。(缓冲区一般为1024个字节)

    一般地,标准输入stdin和标准输出stdout为行缓冲,标准错误输出stderr无缓冲。但是ANSI C要求下列缓存特征(参考APUE):

    • 当且仅当标准输入和标准输出并不涉及交互作用设备时,它们才是全缓存的。
    • 标准出错决不会是全缓存的。

    但是,很多系统是这么实现的:

    • 涉及到交互时,标准输入输出为行缓冲,否则为全缓冲
    • 标准错误输出总是无缓冲

    Unix中用宏_IO_LINE_BUF_IO_UNBUFFERED#include <stdio.h>即可)来判断流属于哪个缓冲类型,判断方法(以stdin举例)为:用stdin->_flags_IO_LINE_BUF_IO_UNBUFFERED进行按为与运算,如果运算结果不为0,则为相应的缓冲类型;如果二者都为0,那么就是全缓冲。

    下面验证之前的说明,即判断标准输入输出和标准错误输出的缓冲类型(以stdin为例子,stdoutstderr也同理,有兴趣的同学自己验证):

    /*
    ** 没有交互时,stdin的缓冲类型
    */
    #include <stdio.h>
    
    int main()
    {
      if (stdin->_flags & _IO_LINE_BUF) {
        printf("stdin is Line-buf.\n");
      } else if (stdin->_flags & _IO_UNBUFFERED) {
        printf("stdin is Non-buf.\n");
      } else {
        printf("stdin is full-buf.\n");
      }
    
      return 0;
    }
    

    运行结果

    /*
    ** 有交互时,stdin的缓冲类型
    */
    #include <stdio.h>
    
    int main()
    {
      int a;
      scanf("%d", &a);
      
      if (stdin->_flags & _IO_LINE_BUF) {
        printf("stdin is Line-buf.\n");
      } else if (stdin->_flags & _IO_UNBUFFERED) {
        printf("stdin is Non-buf.\n");
      } else {
        printf("stdin is full-buf.\n");
      }
    
      return 0;
    }
    

    运行结果

    展开全文
  • C语言中,在程序开始运行时,系统自动打开3个标准文件:标准输入、 标准输出、标准出错输出。通常这3个文件都与终端相联系。因此,以前我们所用到的从终端输入或输出都不需要打开终端文件。系统自定义了3个文件...
  • 使用printf函数时,输出设备默认为标准输出设备(一般是显示器),因此,不需要告诉printf函数显示器在哪。 但如果想从文件中读取输入,情况就不同了,系统中有不同的磁盘,每个磁盘又有成千上万的文件,到底应该从...
  • C语言中的输入输出流和缓冲区(重点)详解

    万次阅读 多人点赞 2019-01-01 13:21:56
    C语言中我们用到的最频繁的输入输出方式就是scanf()与printf()。 scanf(): 从标准输入设备(键盘)读取数据,并将值存放在变量中。 printf(): 将指定的文字/字符串输出到标准输出设备(屏幕)。注意宽度输出和精度 ...
  • C语言标准输入输出文件

    千次阅读 2020-06-28 23:23:53
    标准输入文件,一般指键盘;scanf()、getchar() 等函数默认从stdin获取输入。 标准输出文件,一般指显示器;printf()、putchar() 等函数默认向stdout输出数据 下面演示用scanf()输入到stdin再由printf()输出到...
  • C语言输入输出流和缓冲区的深入理解

    千次阅读 多人点赞 2018-08-28 07:47:00
    C语言输入输出流和缓冲区的深入理解 2015年10月06日 10:08:17 阅读数:15202更多 个人分类: C语言之路 导读:对C语言输入输出流和缓冲区的深入理解,C语言缓冲区(缓存)详解,缓冲区又称为缓存,这些存储...
  • C语言使用cin和cout(标准输入输出流)

    万次阅读 2018-08-05 21:22:30
    我们都知道:C++ 编程中最基本和最常见的 I/O 操作。 C++ 的 I/O 发生在流中,流是字节序列。... 在这就不对标准输入输出流介绍了。可自行百度 想在C程序中使用cin和cout。作为输出输出,只需要在C文件中添...
  • C语言输入输出函数

    2015-02-01 14:29:32
    C语言输入输出函数有很多,标准I/O函数中包含了如下几个常用的函数: scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等. int scanf(const char *format, arg_list) ...
  • C语言 基本输入输出函数

    万次阅读 多人点赞 2016-11-03 15:07:57
    1 几组常见的输入输出函数在stdio.h头文件中内置了几种输入输出函数,如下列出: printf 与 scanf getchar 与 putchar gets 与 puts 相比之下 printf 与 scanf的功能最为强大,但操作稍显复杂,后两种则功能简单,...
  • C语言流输入输出函数

    千次阅读 2015-08-27 07:39:05
    printf(scanf)、puts(gets)和putchar(getchar)是分别向标准流输出(由标准流读入)字符串、一行字符和单个字符的函数。除了这些函数,C语言也提供了面向任何输入输出函数。
  • C语言输入输出

    万次阅读 2016-11-23 22:53:51
    声明:本篇博客主要讲怎样使用C语言标准库里面的输入输出函数输入输出简单机制我们在使用输入输出函数的时候,不管是从文件还是控制台,它都是会先存放在缓冲区里面,但需要使用的时候才会在缓冲区里面提取。...
  • 关于C语言输入输出重定向

    万次阅读 2016-04-11 21:19:06
    C语言标准输入输出为stdin和stdout,这两个变量的类型为FILE*类型,也就是说,标准输入输出操作,其本质还是文件操作。 当需要重定向时,可以调用 #include freopen("d:\\data_in.txt","r",stdin); 将输入定向为...
  • c语言输入输出

    千次阅读 2014-11-17 22:01:18
    http://blog.csdn.net/pipisorry/article/details/41219551C语言基本输入输出C语言字符串读取数据sscanfsscanf() - 从一个字符串中读进与指定格式相符的数据。swscanf()- 用于处理宽字符字符串,和sscanf功能相同...
  • 标准输入/输出的重定向包括重定向到内存,或是重定向到文件。下面分别示例说明。 1、输入输出重定向到内存 setbuf函数具有打开和关闭缓冲机制。为了带缓冲进行I/O,参数buf必须指向一个长度为BUFSIZ(定义在stdio.h...
  • //标准输入输出流使用示例//: #include <iostream>//C++标准输入...#include <cstdlib>//C语言标准输入输出流 #include <string>//C++的string类 using namespace std; u int main(void){ cout," ,Today"<<std::end
  • 标准输入输出流

    2016-07-11 08:56:11
    c++的标准输入输出流,包含头文件#includeiostream.h>cin>>a,意思就是输入字符到a和c里面的scanf("%d",&a);是一样的;cout是标准的输出流;#includeiostream.h>int main(){int a,b=3;cin>>a;coutreturn 0;}int a;...
  • 1:c语言输入输出 2:是什么 3:c++IO 4:文件对象 一:c语言的输入与输出 C语言中用到最频繁的输入输出方式就是scanf()与printf()。scanf()是从标准输入设备读取数据,并将值存放在变量中。printf()是...
  • C语言重定向输入输出的方法

    千次阅读 2016-08-03 14:46:13
    在C标准库头文件中有一个freopen的函数,用于重定向输入输出流。该函数可以在不改变代码原貌的情况下改变输入输出环境,但使用时应当保证流是可靠的。函数原型是  FILE *freopen(const char *filename,const char*...
  • C语言输入输出重定向

    千次阅读 2014-08-23 12:52:31
    许多操作系统,包括MS-DOS和UNIX,可以对输入输出进行重定向。为了理解这个机制,首先考虑下面这个UNIX命令: ls 这个命令在屏幕上显示文件的目录列表(MS-DOS中的对应命令是DIR)。现在考了下面这个命令: ls...
  • 简单的c语言相关的输入输出函数
  • 前面介绍了C语言输入,那现在就来介绍介绍C语言输出
  • c语言输入输出函数

    千次阅读 多人点赞 2013-08-26 17:58:16
    上学年学习c语言的时候比较匆忙,没好好吸收。 现在有时间好好复习下。 本文就c语言常见输入...C语言输入输出函数  C/C++学习笔记1 - 深入了解scanf()/getchar()和gets()等函数 -。常见输入输出
  • 一、C语言中的三种标准流1、标准输入流:stdin2、标准输出流:stdout3、标准错误输出流:stderr他们的类型都是File *二、fprintf、printf、sprintf的区别fprintf( )用于把信息按照指定格式输出到一个文件中,fprintf...
  • stdin 标准输入流,标准的输入设备默认键盘stdout 标准输出流,标准的输出设备默认屏幕stderr 标准错误流,只有程序出错时才会执行的流程printf(“abc”) 是对fprintf(stdout,”abc”)函数的封装.把“ ”内的内容...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,094
精华内容 16,037
关键字:

c语言标准输入输出流

c语言 订阅