【总结】C/C++输入输出不完全总结(待续)

1. C风格 FILE*, fwrite, fread

语法为:

  1. #include<cstdio>或者#include<stdio.h>
  2. FILE* fd = fopen(<文件名字符串>,"<参数>");//文件名字符串的类型一般是字符串常量或者字符串数组 const char*
  3. //写到文件 从起始地址begin起,写入number个size字节的数据
  4. fwrite(<要写进文件的内存起始地址begin>,<单元大小size>,<单元个数number>,<文件对象fileobj>);
  5. //读文件
  6. fread();
  7. fclose();
  8. fgetc();读字符
  9. fputc(); 写字符
  10. fputs(); 写字符串

实例代码

  1. #include<cstdio>或者#include<stdio.h>
  2. voidDataset::dumpData(constchar savefile[],int numDatam double* data,double* label){
  3. FILE* fd = fopen(savefile,"wb+");
  4. if(fd = NULL){
  5. printf("file doesn‘t exist: %s\n", savefile);
  6. exit(1);
  7. }
  8. fwrite(&numData,sizeof(int),1, fd);
  9. fwrite(&numFeature,sizeof(int),1, fd);
  10. if(label != NULL){
  11. fwrite(&numLabel,sizeof(int),1, fd);
  12. }
  13. fwrite(data,sizeof(double), numData*numFeature, fd);
  14. if(label != NULL){
  15. fwrite(label,sizeof(double), numData*numLabel, fd);
  16. }
  17. fclose(fd);
  18. }

相关知识:
FILE不是关键字,而是一个自定义数据类型,用于变量声明,它的定义在stdio.h中,具体定义如下:

  1. typedefstruct
  2. {
  3. unsignedchar*curp;/* Current active pointer */
  4. unsignedchar*buffer;/* Data transfer buffer */
  5. int level;/* fill/empty level of buffer */
  6. int bsize;/* Buffer size */
  7. unsignedshort istemp;/* Temporary file indicator */
  8. unsignedshort flags;/* file status flags */
  9. wchar_t hold;/* Ungetc char if no buffer */
  10. char fd;/* file descriptor */
  11. unsignedchar token;/* Used for validity checking */
  12. } FILE;

函数原型

  1. size_t fread(void* buffer,size_t size,size_t count, FILE* stream);
strtok_r

2. C风格 fscanf(), getc(), fgets(), sscanf()

语法:
实例代码:
svmdataset

3. **C风格 readline(FILE* INPUT), fgets(), strrchr, **

语法:
实例代码:
svm.cpp

4. C++风格 fstream, is_open(), read(), seekg(), tellg()

语法:
实例代码:

  1. voidMNISTDataSet::loadData(constchar* filepath){
  2. fstream infile(filepath, ios::in|ios::binary);
  3. if(!infile.is_open()){
  4. cout <<"cannot open the file"<< endl;
  5. return;
  6. }
  7. }

相关知识:

5. C++风格 getline(), istringstream, >>

语法:
实例代码:

  1. voidDataReader::read(vector<fv_type>& allfv, vector<label_type>& labels){
  2. string line;
  3. allfv.reserve(2400000);
  4. labels.reserve(2400000);
  5. allfv.clear();
  6. labels.clear();
  7. int counter =0;
  8. }

相关知识:

时间: 2024-11-10 04:01:52

【总结】C/C++输入输出不完全总结(待续)的相关文章

2017-2-17,c#基础,输入输出,定义变量,变量赋值,int.Parse的基础理解,在本的初学者也能看懂(未完待续)

计算机是死板的固定的,人是活跃的开放的,初学c#第一天给我的感觉就是:用人活跃开放式的思维去与呆萌的计算机沟通,摸清脾气,有利于双方深入合作,这也是今晚的教训,细心,仔细,大胆 c#基础 1.Hello!World!!! 1 { //输出Hello!World!!; 2 Console.WriteLine("Hello!World!!!"); 3 //防止闪退; 4 Console.ReadLine(); 5 6 } 踏入IT世界的第一步,向世界问好 2.string定义变量 套用向老

输入输出框架(未完待续)

输入一些整数,求出它们的最小值.最大值和平均值(保留3位小数). 输入保证这些数都是不超过1000的整数. 样例输入: 2 8 3 5 1 7 3 6 样例输出: 1 8 4.375 #include <stdio.h> int main() { int n=0, x, min, max, s=0; while (scanf("%d", &x)==1) { s += x; if (x > max) max = x; if (x < min) min =

蓝鸥Unity开发基础——控制台输入输出学习笔记

控制台输入输出:本节内容控制台输入输出.格式化输出 using System; namespace Lesson09{    class MainClass    {        public static void Main (string[] args)        {            /* 控制台输出语句             * 1.Console.WriteLine("");             * 2.Console.Write (" "

常用命令 - 输入输出、执行状态

输入输出 标准输入:默认为键盘,可以指定为文件. 标准输出:默认为屏幕,可以指定为文件. *****如果在终端输入时,一行不能结束,可以使用反斜杠 \ 在下一行接着输入. echo echo用于将字符串输出1 使用时如果用双引号字符串,内部的$变量将会被替换,内部的反单引号中的命令会输出``,但是转义字符不会发生转义.2 使用单引号字符串,$变量不会被替换,返单引号不会执行命令,同样不发生转义字符转义.3 不使用引号等于使用双引号. echo有三个控制选项:-n do not output th

linux输入输出重定向

http://www.cnblogs.com/chengmo/archive/2010/10/20/1855805.html 在Linux下,当一个用户进程被创建的时候,系统会自动为该进程创建三个数据流,也就是题目中所提到的这三个.那么什么是数据流呢(stream)?我们知道,一个程序要运行,需要有输入.输出,如果出错,还要能表现出自身的错误.这是就要从某个地方读入数据.将数据输出到某个地方,这就够成了数据流. 因此,一个进程初期所拥有的这么三个数据流,就分别是标准输出.标准输入和标准错误,分别

黑马程序员---C基础9【字符串的输入输出】【字符串相关函数】【指针】【指针变量初始】【二级指针】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- [字符串的输入输出] 1.字符串输出: %s-------从给定的地址开始输出字符直到遇到\0停止: printf("%s\n",&a[3]);  printf("%s\n",a); char a[]="hellowo\0rd!"; 2.字符串输入: 从键盘上接收一个字符串,保存在以a为首地址的字符数组中 scanf("%s&

FPGA编程技巧系列之输入输出偏移约束

1.   偏移约束的作用 偏移约束(Offset Constraint)用来定义一个外部时钟引脚(Pad)和数据输入输出引脚之间的时序关系,这种时序关系也被称为器件上的Pad-to-Setup或Clock-to-Out路径.这些约束对与外部元器件相连的接口十分重要,在这里,需要解释两个术语: Pad-to-Setup:也被称为OFFSET IN BEFORE约束,是用来保证外部输入时钟和外部输入数据的时序满足FPGA内部触发器的建立时间要求的.如下图TIN_BEFORE约束使得FPGA在进行DA

存储、中断、总线及输入输出系统

存储系统的基本要求: 大容量,高速度和低价格. 访问时间: 存储器从接到访存读申请,到信息被读到数据总线上所用的时间 存储周期: 连续启动一个存储体所需的时间间隔 频宽: 每秒传输的信息位数 并行主存系统: 能并行读取多个CPU字的单体多字.多体单字或多体多字的交出存储主存系统 并行主存频宽: 主存频宽与分体数m.转移概率λ的关系 中断分类: 机器校验中断 访管中断 程序性中断 外部中断 I/O中断 重新启动中断 总线: 总线是用于互连计算机.CPU.存储器.I/O端口及外部设备.远程通信设备间

whatweb.rb 未完待续

#!/usr/bin/env ruby #表示ruby的执行环境 =begin # ruby中用=begin来表示注释的开始 .$$$ $. .$$$ $. $$$$ $$. .$$$ $$$ .$$$$$$. .$$$$$$$$$$. $$$$ $$. .$$$$$$$. .$$$$$$. $ $$ $$$ $ $$ $$$ $ $$$$$$. $$$$$ $$$$$$ $ $$ $$$ $ $$ $$ $ $$$$$$. $ `$ $$$ $ `$ $$$ $ `$ $$$ $$' $ `$