zoukankan      html  css  js  c++  java
  • C++fread小解

    std::fread

    ——C++ 输入/输出库 C 风格 I/O

    定义于头文件 <cstdio>

    1 std::size_t fread( void* buffer, std::size_t size, std::size_t count, std::FILE* stream );

    从给定输入流 stream 读取至多 count 个对象到数组 buffer 中,如同以对每个对象调用 size 次 std::fgetc ,并按顺序存储结果到转译为 unsigned char 数组的 buffer 中的相继位置。流的文件位置指示器前进读取的字符数。

    若出现错误,则 stream 的结果值不确定。若只读入部分的元素,则元素值不确定。

    参数

    1 buffer  -   指向要读取的数组中首个对象的指针
    2 size    -   每个对象的字节大小
    3 count   -   要读取的对象数
    4 stream  -   读取来源的输入文件流

    返回值 成功读取的对象数,若出现错误或文件尾条件,则可能小于 count 。

    若 size 或 count 为零,则 fread 返回零且不进行其他动作。

    示例:

    假设程序当前目录下,已将有一个test.txt文件,内容为:

    1 2

    样例代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <fstream>
     4 #include <vector>
     5 using namespace std;
     6 
     7 int main()
     8 {
     9     freopen("test.txt", "r", stdin);
    10 
    11     std::vector<char> buf(4); // char 类型的vector, vector初始大小为4
    12     std::fread(&buf[0], sizeof buf[0], buf.size(), stdin);
    13 
    14     for(char n : buf) // c++11
    15         std::cout << n;
    16 }

    输出:

    1 2

    警告:在默认从键盘读入时,需用 Ctrl+Z 手动结束输入。

  • 相关阅读:
    冒泡排序
    Window中常见的dos命令
    spring boot 重定向
    阿里云轻量级服务器使用
    网络知识
    spring boot security 登出
    深入理解java虚拟机
    jsp内置对象与servlet的关系
    求一个有向无换图中,最长简单路径。动态规划问题15-1
    一些动态规划问题的java实现
  • 原文地址:https://www.cnblogs.com/hkxadpall/p/9497965.html
Copyright © 2011-2022 走看看