C++标准IO

cin(标准输入),cout(标准输出),cerr(不带缓存的标准错误输出),clog(带缓存的标准错误输出)。

文件读写操作,分别为:ifstream(读文件),ofstream(写文件),fstream(读写文件)

字符串作为输入输出流进行处理,分别为:istringstream(字符串输入流),ostringstream(字符串输出流),stringstream(字符串输入输出流)。

每种流对应一个缓冲区类(filebuf,stringbuf)。

#include <iostream>
using namespace std;

int main(void){
    cout.put(‘A‘);
    cout << endl;
    /*向流中插入一个字符串*/
    char *str = "Hello World !";
    cout.write(str, strlen(str));
    cout << endl;
    cout.write(str + 6, strlen(str));
    cout << endl;
    /*向流中提取字符,
    getline()遇输入流中的停止符,并提取停止符,把‘\0’加至最后*/
    char str2[20];
    cout << "input str:";
    cin.getline(str2, sizeof(str2));
    cout << str2 << endl;
    /*get()遇输入流中的停止符,但不提取停止符*/
    char str1[5];
    cout << "input str:";
    cin.get(str1, sizeof(str1));
    cout << str1 << endl;
    return 0;
}

文件读写处理:

#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;

void main(){
    /*将信息写入test.txt*/
    ofstream outfile("d:\\test.txt", ios::out); //以写方式打开文件
    if (!outfile)
    {
        cerr << "打开文件错误" << endl;           //标准错误输出
        abort();                               //终止进程,使所有的流被关闭和冲洗
    }
    else{
        outfile << "1.Hangzhou" << endl;
        outfile << "\n" << endl;
        outfile << "2.Shanghai" << endl;
    }
    outfile.close();
    /*读test.txt信息*/
    char s[20];
    ifstream infile("d:\\test.txt", ios::in);  //以读方式打开文件
    if (!infile)
        cerr << "打开文件错误" << endl;          //标准错误输出
    else{
        infile.getline(s, 20);                 //提取一行字符
        cout << s << endl;
        while (!infile.eof())                  //文件不结束执行
        {
            infile.getline(s, 20);
            cout << s << endl;
        }
    }
    infile.close();
}

文件复制:

    ifstream infile("d:\\test.txt", ios::in);
    if (!infile)
    {
        cerr << "文件test.txt打开错误" << endl;
        abort();
    }
    ofstream outfile("d:\\test1.txt", ios::out);
    if (!outfile)
    {
        cerr << "文件test1.txt打开错误" << endl;
        abort();
    }
    char ch;
    while (infile.get(ch))            //文件流中逐个读出字符,直到文件结束
        outfile.put(ch);
    infile.close();
    outfile.close();    
时间: 2024-12-15 11:12:05

C++标准IO的相关文章

内核IO和标准IO

对于文件的读写操作函数在执行的空间来分,可以分为内核IO(主要在内核中运行)和标准IO(主要在用户空间中运行). 内核IO需要自己创建和管理缓存,而标准IO是自动分类缓存,一般来说,内核IO的效率高于标准IO,但是差距不是很大,考虑移植性,还是建议使用标准IO(只要是支持标准C语言就支持标准IO). 无论是标准IO还是内核IO都是对文件的信息,读写文件的指针进行记录的,调用相应的函数可以进行文件信息的读取和指针的修改. 以下为IO相关的函数的头文件,使用,参数,返回值的说明 linux C语言I

第一天20150829:标准IO 和 系统IO -----stdio and sysio

IO 的实现包括两种实现: 1.stdio标准IO 2.sysio系统IO IO的两种实现方式正常都可以使用.但是,在使用的过程中优先使用stdio标准IO. 首先要了解这两种实现的原理: 1.sysio系统IO:我们作为USER 要与内核对话,那么系统为我们提供了一个sysio,可以直接对话KERNAL. 那么问题就产生了:如果USER使用的平台环境不一样(有的人有linux,有的人用windows),那么由于KERNAL不一样,那么提供给USER的sysio也会不一样 2.所以引申出来一个标

标准IO的简单应用,动静态库,读取系统时间并打印,模拟ls -l功能

2015.2.27星期五,小雨 标准IO实现的复制功能: #include <stdio.h>#include <errno.h> #define N 64 int main(int argc, char *argv[]){ int n; char buf[N]; FILE *fps, *fpd; if(argc < 3) { printf("usage : %s <src_file><dst_file>\n",argv[0]);

C++ Primer 读书笔记: 第8章 标准IO库

第8章 标准IO库 8.1 面向对象的标准库 1. IO类型在三个独立的头文件中定义:iostream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,而sstream所定义的类型则用于读写存储在内存中的string对象.在fstream和sstream里定义的美中类型都是从iostream头文件中定义的相关类型派生而来. 2. 流对象不能复制,因此不能存储在vector容器中 3. 形参或返回类型也不能为流类型.如果需要传递或返回IO对象,则必须传递或返回指向该对象的指针或引用.

标准IO

标准IO由ISO C 标准的IO库,它处理了很多底层细节,比如合适的缓冲大小等等,因此更易于使用,但是也引入了一些其他问题. 流向 标准IO使用FILE对象关联流,流可以是面向宽字节的也可以是面向单字节的,当流初始化的时候是没有方向的,如果后面的IO操作是处理的宽字符集的,流变成面向宽字节的,如果哦是处理单字节的,流变成面向单字节,一旦流有了方向,不可改变,直到流被关闭,fwide可以设置流的方向,freopen可以清楚流的方向. #include <wchar.h> int fwide(FI

标准IO与文件IO 的区别【转】

本文转载自:http://blog.sina.com.cn/s/blog_63f31f3401013jrn.html 先来了解下什么是标准IO以及文件IO. 标准IO:标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头文件中的定义,具有一定的可移植性.标准IO库处理很多细节.例如缓存分配,以优化长度执行IO等.标准的IO提供了三种类型的缓存. (1)全缓存:当填满标准IO缓存后才进行实际的IO操作.         (2)行缓存:当输入或输出中遇到新行符时,标准

Linux学习之标准IO 管道 033_7

默认输入为键盘,标准输出为显示器,错误输出为显示器 把标准输出和错误输出重定向到文件: command operator filename operators: >:标准输出重定向 :把ls -R的输出重定向到文件 2>:错误输出重定向 &>:将正确和错误的输出都重定向 同时将正确和错误信息分别导入到不同文件: 以上默认覆盖,如果在文件末尾添加则用>>s 把错误输出重定向到空设备,也就是忽略错误信息 管道: 将前面一条命令执行的结果作为后面一条命令的输入 如: ls

[APUE]标准IO库(下)

一.标准IO的效率 对比以下四个程序的用户CPU.系统CPU与时钟时间对比 程序1:系统IO 程序2:标准IO getc版本 程序3:标准IO fgets版本 结果: [注:该表截取自APUE,上表中"表3-1中的最佳时间即<程序1>","表3-1中的单字节时间指的是<程序1>中BUFSIZE为1时运行时间结果",fgetc/fputc版本程序这里没放出] 对于三个标准IO版本的每一个其用户CPU时间都大于最佳read版本,因为每次读一个字符

标准IO与文件IO 的区别

1.定义 标准IO:标准I/O是ANSI C建立的一个标准I/O模型,是一个标 准函数包和stdio.h头中的定义,具有一定的可移植性.标准IO库处理很多细节.例如缓存分配,以优化长度执行IO等.标准的IO提供了三种类型的缓存.(1)全缓存:当填满标准IO缓存后才进行实际的IO操作.(2)行缓存:当输入或输出中遇到新行符时,标准IO库执行IO操作.(3)不带缓存:stderr就是了. 文件IO:文件IO称之为不带缓存的IO(unbuffered I/O).不带缓存指的是每个read,write都

linux标准io的copy

---恢复内容开始--- 1.linux标准io的copy #include<stdio.h> int main(int argc,char **argv) { if(argc<3) { printf("use:mycp file1 file2\n"); return -1; } FILE *src=fopen(argv[1],"r");//打开源文件 if(src==NULL) { printf("no file!\n");