【总结】C/C++输入输出不完全总结(待续)
1. C风格 FILE*, fwrite, fread
语法为:
#include<cstdio>或者#include<stdio.h>FILE* fd = fopen(<文件名字符串>,"<参数>");//文件名字符串的类型一般是字符串常量或者字符串数组 const char*//写到文件 从起始地址begin起,写入number个size字节的数据fwrite(<要写进文件的内存起始地址begin>,<单元大小size>,<单元个数number>,<文件对象fileobj>);//读文件fread();fclose();fgetc();读字符fputc(); 写字符fputs(); 写字符串
实例代码
#include<cstdio>或者#include<stdio.h>voidDataset::dumpData(constchar savefile[],int numDatam double* data,double* label){FILE* fd = fopen(savefile,"wb+");if(fd = NULL){printf("file doesn't exist: %s\n", savefile);exit(1);}fwrite(&numData,sizeof(int),1, fd);fwrite(&numFeature,sizeof(int),1, fd);if(label != NULL){fwrite(&numLabel,sizeof(int),1, fd);}fwrite(data,sizeof(double), numData*numFeature, fd);if(label != NULL){fwrite(label,sizeof(double), numData*numLabel, fd);}fclose(fd);}
相关知识:
FILE不是关键字,而是一个自定义数据类型,用于变量声明,它的定义在stdio.h中,具体定义如下:
typedefstruct{unsignedchar*curp;/* Current active pointer */unsignedchar*buffer;/* Data transfer buffer */int level;/* fill/empty level of buffer */int bsize;/* Buffer size */unsignedshort istemp;/* Temporary file indicator */unsignedshort flags;/* file status flags */wchar_t hold;/* Ungetc char if no buffer */char fd;/* file descriptor */unsignedchar token;/* Used for validity checking */} FILE;
函数原型
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()
语法:
实例代码:
voidMNISTDataSet::loadData(constchar* filepath){fstream infile(filepath, ios::in|ios::binary);if(!infile.is_open()){cout <<"cannot open the file"<< endl;return;}}
相关知识:
5. C++风格 getline(), istringstream, >>
语法:
实例代码:
voidDataReader::read(vector<fv_type>& allfv, vector<label_type>& labels){string line;allfv.reserve(2400000);labels.reserve(2400000);allfv.clear();labels.clear();int counter =0;}
相关知识:
A mind needs books like a sword needs a whetstone.

浙公网安备 33010602011771号