首页 > 编程语言 >C/C++ 常用输出流

C/C++ 常用输出流

时间:2024-01-24 21:55:51浏览次数:31  
标签:输出 常用 xxxx C++ 内存 stderr out

在程序设计中,数据输入/输出(I/O)操作是必不可少的,C++语言的数据输入/输出操作是通过I/O流库来实现的。C++中把数据之间的传输操作称为流,流既可以表示数据从内存传送到某个载体或设备中,即输出流,也可以表示数据从某个载体或设备传送到内存缓冲区变量中,即输入流。

C++流涉及以下概念:

标准I/O流:内存与标准输入输出设备之间信息的传递;
文件I/O流:内存与外部文件之间信息的传递;
字符串I/O流:内存变量与表示字符串流的字符数组之间信息的传递。

更多信息在https://blog.csdn.net/tangzhen8839/article/details/43152091

#include <iostream>
using namespace std;
/**
    在C中有三个预定义的流,他们的数据类型都是FILE *
    1. stdin
    2. stdout
    3. stderr
    fprintf(stdout, "INFO: xxxx\n");
        = printf("INFO: xxxx\n");
    fprintf(stderr, "ERROR: xxxx\n");
    (第一个参数stderr是一个全局变量,可以换成一个文件指针)

    C++中:
    cout<<"INFO"<<endl;
    cerr<<"ERROR"<<endl;

*/
void div(int n){
    if(n % 2!= 0){
        cerr<<"ERROR: input"<<n<<endl;
    }else{
        int result = n / 2;
        cout<<"INFO: result"<<result<<endl;
    }
}
void div2(int n){
    if(n % 2!= 0){
        fprintf(stderr, "ERROR: input:%d\n", n);
    }else{
        int result = n / 2;
        fprintf(stdout, "INFO:result: %d\n", result);
    }
}
int main(int argc, const char** argv) {
    for(int n=-5; n<=5; n++){ 
        div2(n);
    }
    // 标准输入:0 标准输出:1 标准错误:2
    // 标准输出重定向  ./a.out > out
    // 标准错误重定向  ./a.out 2> err
    // 标准输出和错误  ./a.out > all 2>&1
    // = ./a.out &> all
    return 0;
}

标签:输出,常用,xxxx,C++,内存,stderr,out
From: https://www.cnblogs.com/bai7/p/17985937

相关文章

  • KY124 二叉搜索树C++
    先把BST建立起,然后递归遍历判断树就好了。#include<iostream>#include<string>usingnamespacestd;structnode{chardata;structnode*left;structnode*right;};typedefstructnodetree;tree*build(strings){inti=0;tree*root=NULL......
  • Logback排除指定包/类/方法日志输出
    排除指定包/类/方法日志输出如下为logback.xml的配置<springProfilename="pro"><appendername="BUSINESS_API"class="ch.qos.logback.core.rolling.RollingFileAppender"><file>/data/log/${projectName}/api_${p......
  • 韩顺平java基础-13-常用类
    韩顺平java基础-13-常用类常用类包装类分类装箱和拆箱//自动装箱intn1=100;Integerinteger=intn1;//自动调用Integer.valueOf(n1)的方法//自动拆箱intn2=integer;//自动调用integer.intValue的方法包装类与String转换包装类型--->String类toString()......
  • KY207 二叉排序树C++
    考二叉搜索树的插入。#include<iostream>usingnamespacestd;structnode{intdata;structnode*left;structnode*right;};typedefstructnodetree;intmain(){intn;while(cin>>n){tree*root=NULL;while(n!=0......
  • KY11 二叉树遍历C++
    这个题目思路其实就是先序遍历的变形。相当于沿着先序遍历的顺序跟着构建二叉树就行。然后中序遍历这个树。#include<iostream>#include<string>usingnamespacestd;structtnode{chardata;structtnode*left;structtnode*right;};typedefstructt......
  • KY212 二叉树遍历C++
    思路是先构造出树,然后在后序遍历整个树。#include<iostream>#include<string>usingnamespacestd;structTnode{chardata;structTnode*left;structTnode*right;};typedefstructTnodeTree;Tree*build(stringpre,inth1,intt1,stringin,inth2......
  • C++ STL Template Traits 技术
    C++的traits技术,是一种约定俗称的技术方案,用来为同一类数据(包括自定义数据类型和内置数据类型)提供统一的类型名(traits),这样可以统一的操作函数,例如advance(),swap(),encode()/decode()等。问题描述首先来看traits技术可以解决什么问题,我们拥有自定义类型Foo,Bar,以及编译......
  • K8s 常用操作备忘
    #查看pod日志kubectllogs-f--tail100admin-center-server-cbd975547-fjlhs-nprod#查看pod重启前的日志kubectllogs-f-p--tail100admin-center-server-cbd975547-fjlhs-nprod#进入pod中kubectlexec-it-nnginxcfhy-prod-front-7d4d58fd4d-pj9lg--bash......
  • 常用的两种UTF8中文截取函数
    /**截取UTF8编码字符串从首字节开始指定宽度(非长度),适用于字符串长度有限的如新闻标题的等宽度截取中英文混排情况较理想.全中文与全英文截取后对比显示宽度差异最大,且截取宽度远大越明显.@paramstring$str UTF-8encoding@paramint[option]$width截取宽度@paramstring[......
  • ROS2常用命令
    ROS2的主要命令入口是 ros2,其中又包含大量的子命令,可用于ROS2程序的开发和测试。下面是其中一些常用的命令及其作用:ros2run:运行ROS2节点或任意可执行文件。ros2run <package_name> <executable_name>ros2run<package_name><executable_name>--ros-args--para......