C++对CSV文件的读写

    技术2024-12-27  14

    C++文件操作(txt和csv) 操作文件必须包含的头文件:#include 写入:

    int main () {

    string fileName = “e:\vs2012\file\a.csv”;

    ofstream file(fileName); if(!file){cout << “open file error” <<endl; return 0;} for (int i = 0; i < 1000000; i++) { file<<i<<",username"<<i<<",pw"<<i<<"\n"; }

    file.close(); } 读取: string str; ifstream file(fileName , ios::in); file>>str; cout << str <<endl;

    while(!file.eof()){    //多行读取 getline(file,str); cout<<str<<endl; }

    文件打开方式选项:     ios::in    = 0x01, //供读,文件不存在则创建(ifstream默认的打开方式)     ios::out    = 0x02, //供写,文件不存在则创建,若文件已存在则清空原内容(ofstream默认的打开方式)     ios::ate    = 0x04, //文件打开时,指针在文件最后。可改变指针的位置,常和in、out联合使用     ios::app    = 0x08, //供写,文件不存在则创建,若文件已存在则在原文件内容后写入新的内容,指针位置总在最后     ios::trunc   = 0x10, //在读写前先将文件长度截断为0(默认)     ios::nocreate = 0x20, //文件不存在时产生错误,常和in或app联合使用     ios::noreplace = 0x40, //文件存在时产生错误,常和out联合使用     ios::binary  = 0x80  //二进制格式文件

    CSV格式的文件,可以用excel打开,格式和txt一样,每列用英文逗号隔开,每行用\n

    方法1:(c语言)

    int main() { FILE *f; f = fopen(“e:\a.csv” , “wb”); fprintf(f,“aaa,23,sdf\n”); fprintf(f,“bbb/,345,2sdf\n”); fclose(f); return 0; }

    load data infile ‘E:\vs2012\file\a.csv’ into table test fields terminated by ‘,’ optionally enclosed by ‘"’ lines terminated by ‘\r\n’;

    1 2 3 4 5 6 7 8

    //判断文件是否存在的方法, WIN32_FIND_DATA FindFileData; HANDLE hFind; hFind = FindFirstFile(file_path.c_str(), &FindFileData); if(hFind == INVALID_HANDLE_VALUE){ cout<<“failed”<<endl; printf("%d", GetLastError()); }

    Processed: 0.011, SQL: 9