c++写入二进制、TXT文件,读取二进制、TXT文件,切分字符串(入数组)
生活随笔
收集整理的這篇文章主要介紹了
c++写入二进制、TXT文件,读取二进制、TXT文件,切分字符串(入数组)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.讀寫二進制文件進數組
無需包含頭文件
1.1.快速寫入二進制文件
int data1[10] = { 1,2,3,4,5,6,7,8,9,10 };//定義文件指針FILE* fp;//打開文件 ;文件指針,文件名,打開方式fopen_s(&fp, "mapA", "wb");//沒打開 退出if (fp == NULL) return 0;//寫入 返回數據長度 ;數據的地址,;元素大小;元素個數;文件指針fwrite(data1, 1, sizeof(data1), fp);//關閉文件流fclose(fp);注意 fweite()函數,以下使用方式均可
fwrite(data1, 1, sizeof(data1), fp);fwrite(data1, sizeof(data1),1, fp);fwrite(data1, 10, sizeof(int), fp);fwrite(data1, sizeof(int), 10,fp);1.2讀取二進制文件
int data2[10]; FILE* fp2;fopen_s(&fp2, "mapA", "rb");if (fp2 == NULL) return 0; //空指針則返回0,文件打開失敗fread(data2, 1, sizeof(data1), fp2);fclose(fp2);fread()函數使用方法如 fweite()。
1.3打印結果
for (int i = 0; i < 10; i++){cout << data2[i] << " ";}結果如下
2.讀寫txt文件
需要包含頭文件 <fstream>
2.1?寫入txt文件
//待寫入的數組int data1[10] = {1,2,3,4,5,6,7,8,9,10};//創建打開文件ofstream fout("mapA.txt");//循環寫入for (int i = 0; i < 10; i++) {fout << data1[i] << " ";}fout << endl;for (int i = 0; i < 10; i++) {fout << data1[i]*2 << " ";}fout << endl;//關閉文件fout.close();2.2讀取txt文件
int data2[20];ifstream inFile;int x;inFile.open("mapA.txt");if (!inFile) {cout << "Unable to open file";exit(1); // terminate with error}int i = 0;while (inFile >> x) {data2[i] = x;i++;}inFile.close();for (int i = 0; i < 20; i++){cout << data2[i] << " ";}2.2輸出結果
3.切分字符串
以‘|’切成行,以“,”切成元素。
//要分割的字符串string str = "1,2,3,4,5|5,4,3,2,1|0,0,0,0,0|";//分割后字符串存放位置int data[5][5];int start = 0, end = 0;int row = 0, col = 0;while (true){//找到‘|’分隔符位置end = str.find('|', start);//達到條件退出if (start >= end) break;//取一行字符串string line = str.substr(start, end - start);//切每行的字符char* next = NULL;char* item = strtok_s((char*)line.c_str(), ",", &next);//將切完的字符放進data數組中col = 0;while (item){//string->int 用atoi()data[row][col] = atoi(item);col++;//繼續切item = strtok_s(NULL, ",", &next);}start = end+1;row++;}for (int i = 0; i < row; i++){for (int j = 0; j < col; j++){cout << data[i][j] << " ";}cout << endl;}?結果
總結
以上是生活随笔為你收集整理的c++写入二进制、TXT文件,读取二进制、TXT文件,切分字符串(入数组)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 下拉框+搜索插件
- 下一篇: 基于Docker方式实现Elastics