博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linuxc - 标准输入流、标准输出流、标准错误流
阅读量:6586 次
发布时间:2019-06-24

本文共 2122 字,大约阅读时间需要 7 分钟。

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

#include 
int main(){ printf("请输入选择的数字:\n"); // 标准输出流 int choice; scanf("%d",&choice); // 标准输入流 printf("您输入的数字是:%d\n",choice);}
root@jiqing:~/cspace/les4# ./cio.out请输入选择的数字:10您输入的数字是:10
#include 
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: -1the value must > 0

重定向

#include 
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.outplease input value of i:10please input value of j:20i+j=30

管道重定向处理

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

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

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

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

重定向输入流。

新建一个input.txt

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

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

标准错误流,

#include 
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.txt100root@jiqing:~/cspace/les5# cat t.txtplease input value of i:please input value of j:root@jiqing:~/cspace/les5# cat f.txtj must > 0

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

三者结合使用,

root@jiqing:~/cspace/les5# vim input.txt
100
root@jiqing:~/cspace/les5# ./main.out 1>t.txt 2>f.txt 
0

转载地址:http://gvxno.baihongyu.com/

你可能感兴趣的文章
常见ES6新属性
查看>>
cesium primitive方式 ————http://blog.sina.com.cn/s/blog_15e866bbe0102y0ji.html
查看>>
BZOJ 1211 [HNOI2004]树的计数
查看>>
读《用户故事与敏捷方法》
查看>>
COM编程_第一讲_深入COM框架以及实现简单的COM
查看>>
Json对象处理.将对象处理成dic数组.
查看>>
java GUI画满天星
查看>>
java面试每日一题12
查看>>
【转】使用TortoiseSVN搭建本地的版本控制库
查看>>
第五十九篇、OC录制小视频
查看>>
Struts2_day03--OGNL的#、%使用
查看>>
Javascript:getElementsByClassName
查看>>
Android音频开发之——如何播放一帧音频
查看>>
MySQL 关于存储过程那点事
查看>>
代码片段
查看>>
软工第二周个人作业
查看>>
不固定个数组,进行一一对应的组合,js将多个数组实现排列组合
查看>>
一个陌生女人的来信
查看>>
SqlServer和Oracle临时表生命周期
查看>>
jquery判断文本框输入的是非数字内容(交流QQ群:452892873)
查看>>