输入流stdin默认是键盘,输出流stdout默认是显示器,错误流stderr

#include <stdio.h>

int main()
{
printf("请输入选择的数字:\n"); // 标准输出流
int choice;
scanf("%d",&choice); // 标准输入流
printf("您输入的数字是:%d\n",choice);
}
root@jiqing:~/cspace/les4# ./cio.out
请输入选择的数字:
10
您输入的数字是:10
#include <stdio.h>

int main()
{
// printf("please input the value a: \n");
fprintf(stdout,"please input the value a: \n"); // 非标准输出流 int a; // scanf("%d",&a);
fscanf(stdin,"%d",&a); // 非标准输入流
if (a<0) {
fprintf(stderr,"the value must > 0 \n");
return 1;
}
return 0;
}
root@jiqing:~/cspace/les4# ./cio.out
please input the value a:
-1
the value must > 0

重定向

#include <stdio.h>
int main()
{
printf("please input value of i:\n");
int i;
scanf("%d",&i); printf("please input value of j:\n");
int j;
scanf("%d",&j); printf("i+j=%d\n",i+j);
return 0;
}
root@jiqing:~/cspace/les5# cc main.c -o main.out && ./main.out
please input value of i:
10
please input value of j:
20
i+j=30

管道重定向处理

root@jiqing:~/cspace/les5# ./main.out  1>> a.txt
10
20
root@jiqing:~/cspace/les5# cat a.txt
please input value of i:
please input value of j:
i+j=30

这个时候会将所有的标准输出流都写入到a.txt中。

root@jiqing:~/cspace/les5# ./main.out  1> a.txt
10
20
root@jiqing:~/cspace/les5# cat a.txt
please input value of i:
please input value of j:
i+j=30

单箭头不会累计数据,每次都是最新的数据。

重定向输入流。

新建一个input.txt

10
30
root@jiqing:~/cspace/les5# ./main.out < input.txt
please input value of i:
please input value of j:
i+j=40

直接就输出了结果,键盘都没有敲。

标准错误流,

#include <stdio.h>
int main()
{
printf("please input value of i:\n");
int i;
scanf("%d",&i); printf("please input value of j:\n");
int j;
scanf("%d",&j);
if (0!=j) {
printf("%d/%d=%d\n",i,j,i/j);
} else {
fprintf(stderr,"j must > 0\n");
return 1;
}
return 0;
}
root@jiqing:~/cspace/les5# ./main.out 1>t.txt 2>f.txt
10
0
root@jiqing:~/cspace/les5# cat t.txt
please input value of i:
please input value of j:
root@jiqing:~/cspace/les5# cat f.txt
j must > 0

错误流会重定向到f.txt中,正确流会到t.txt中。

三者结合使用,

root@jiqing:~/cspace/les5# vim input.txt
10
0
root@jiqing:~/cspace/les5# ./main.out 1>t.txt 2>f.txt <input.txt
root@jiqing:~/cspace/les5# cat t.txt
please input value of i:
please input value of j:
root@jiqing:~/cspace/les5# cat f.txt
j must > 0

Linuxc - 标准输入流、标准输出流、标准错误流的更多相关文章

  1. java8_api_io

    IO-1    i/o的概念    File类详解        java.io.File    java.io.FileFilter接口        只有一个方法        这是一个函数式接口 ...

  2. 五、stdout,stdoin和stderr

    stdout,stdin和stderr分别是标准输出流.标准输入流和标准错误流,当一个用户进程被创建的时候,系统会自动为该进程创建这三个数据流,默认情况下这三个流是在终端上表现出来的.可以使用fpri ...

  3. python 精华梳理(已理解并手写)--全是干货--已结

    基础部分 map,reduce,filter,sort,推导式,匿名函数lambda , 协程,异步io,上下文管理 自定义字符串转数字方法一不使用reduce import re def str2i ...

  4. java 21 - 11 IO流的标准输入流和标准输出流

    标准输入输出流 System类中的两个成员变量: public static final InputStream in "标准"输入流. public static final P ...

  5. java 标准输出流、标准错误输出流、标准输入流及扫描仪

    初步认识标准输出流.错误输出流.输入流.扫描仪 package com.mydemo.controller; import java.util.Scanner; public class HelloW ...

  6. stdout( 标准输出流)和 stderr( 标准输入流) 重定向问题

    我想把提示信息和错误信息列表都写入到同一个文件里, /* ** 设置流, 使输出与错误流都指向指定的文件 */ if( (output1 = freopen( PATH, "a", ...

  7. 8.2 C++标准输出流对象

    参考:http://www.weixueyuan.net/view/6408.html 总结: iostream头文件,包含了该头文件后,我们就可以直接使用这些对象,包含标准的输出流对象cout.ce ...

  8. 在Android平台下的基于Linux-C 的测试程序

    iTOP-4412 开发板可以运行的文件系统很多,在具体的文件系统上实现特定功能前,可以 使用Linux-C 程序来测试硬件以及驱动.而且这些程序很容易移植到Android.Qt/E 以及最小文件系统 ...

  9. 在windows下搭建linux-c学习环境

    下载virtualbox并安装: https://www.virtualbox.org/wiki/Downloads 现在vagrant并安装: https://www.vagrantup.com/d ...

随机推荐

  1. Python的可变类型与不可变类型

    Python基础知识,自己写一写比较不容易忘 Python的每个对象都分为可变和不可变,主要的核心类型中,数字.字符串.元组是不可变的,列表.字典是可变的. 对不可变类型的变量重新赋值,实际上是重新创 ...

  2. jQuery 入门

    不能正常引用jQuery-2.2.4.min.js所以代码没生效 jQuery 是一个 JavaScript 函数库.jQuery 库包含以下特性: HTML 元素选取 HTML 元素操作 CSS 操 ...

  3. QTableView表格自动拉伸

    QTableView有四个关于自动拉伸的函数: void resizeColumnToContents(int column); void resizeColumnsToContens(); void ...

  4. ABAP开发人员未来应该学些什么

    2007年1月我大学毕业进入SAP Chengdu从事开发工作,到今天已经整整11年了. 这张图在ABAP开发圈子里曾广为流传: 为了避免这种窘境发生在ABAPer身上,我们应该做点什么呢? 2017 ...

  5. [原创]Nginx反向代理及负载均衡

    1.基本命令 # 启动nginx start nginx.exe # windowsnginx -c /usr/local/nginx/conf/nginx.conf # Linux# 优雅的停止ng ...

  6. 8、ABPZero系列教程之拼多多卖家工具 添加手机注册登录功能

    现在网站基本都用手机注册,很少用邮箱注册,本篇内容比较多,代码我会尽量加备注,有些操作需要连续添加几个文件才不报错,如果VS显示错误,请继续后续步骤. 前面已经有一篇文章讲到集成短信发送模块:http ...

  7. 从 0 到 1,Java Web 网站架构搭建的技术演进

    初始搭建 最开始,就是各种框架一搭,然后扔到 Tomcat 容器中跑,这时候我们的文件.数据库.应用都在一个服务器上. 服务分离 随着系统的上线,用户量也会逐步上升,很快一台服务器已经满足不了系统的负 ...

  8. jq手风琴效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. spring使用之旅(二) ---- AOP的使用

    什么是AOP? AOP基本概念 AOP使用--注解方式 AOP使用--XML方式 实例--日志 写在最前面的(源码地址): https://github.com/xc83415134/spring_a ...

  10. centos7配置阿里云yum源

    1)下载repo文件 wget http://mirrors.aliyun.com/repo/Centos-7.repo 2)备份并替换系统的repo文件 cp Centos-7.repo /etc/ ...