1. 程式人生 > >C/C++ 連續讀寫多個檔案

C/C++ 連續讀寫多個檔案

本文是為了解決多個檔案的讀寫問題:
問題:在我的E盤下gene_info有300個.dat檔案。那麼我如何把這300個.dat檔案中的內容讀取出來呢?
這裡寫圖片描述
每個.dat檔案中的內容就是這樣的字串資訊。我們不知道每個檔案中有多少個字串。我們可以知道的就是每個檔案中有一些字串資訊,僅此而已。
這裡寫圖片描述

程式碼:我們將300個.dat檔案中的字串讀到rs中,並列印輸出。至於寫進多個檔案,就是註釋掉的部分,用fprintf()函式寫入。

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string.h>
#include<vector> using namespace std; vector<string> rs; void read_write() { FILE *fp = NULL;//輸入 FILE *fq = NULL;//輸出 char filename_body[10]; for(int i = 1; i <= 300; i ++) { char filename[30] = "E://gene_info/gene_"; memset(filename_body, 0, sizeof(filename_body)); itoa(i, filename_body, 10
); strcat(filename,filename_body); char filename_tail[5] = ".dat"; strcat(filename,filename_tail); /* char outputfile[30] = "E://gene_info_res/"; char outputfile_body[10]; memset(outputfile_body, 0, sizeof(outputfile_body)); itoa(i, outputfile_body, 10); strcat(outputfile, outputfile_body); char outputfile_tail[5] = ".txt"; strcat(outputfile,outputfile_tail); */
if((fp=fopen(filename, "r")) == NULL) { cout<<"open filename fail..."<<endl; } /* if((fq=fopen(outputfile, "w")) == NULL) { cout<<"open outputfile fail..."<<endl; } */ char str[20]; while(fscanf(fp, "%s", str) == 1) { string tmp = str; rs.push_back(tmp); } // fclose(fq); fclose(fp); } } int main() { read_write(); for(int i = 0; i < rs.size(); i ++) cout<<rs[i]<<endl; cout<<"DONE"<<endl; return 0; }

相關推薦

C/C++ 連續檔案

本文是為了解決多個檔案的讀寫問題: 問題:在我的E盤下gene_info有300個.dat檔案。那麼我如何把這300個.dat檔案中的內容讀取出來呢? 每個.dat檔案中的內容就是這樣的字串資訊

C語言中檔案時迴圈生成檔名

char fileName[50]; char *dirName="E:/lung_data/005/GB_BMP4_5_1"; for(int i=0;i<num;i++) {sprintf_s(fileName,"%s//%d.bmp",dirName,i); }

C/C++ 關於如何ini配置檔案 (小結)

讀取 讀取字元   DWORD GetPrivateProfileString(   LPCTSTR lpAppName,        // INI檔案中的一個欄位名[節名]可以有很多個節名   LPCTSTR lpKeyName,        // lpAppName 下的一個鍵名,也就是裡面具體

readv writev 簡介 一次緩衝區

  一個小例子說明函式使用: 結構說明: struct iovec { void * iov_base //緩衝區地址 size_t iov_len //緩衝區輸入/輸出長度 } #include "util.h" #include <sys/u

Java 非同步同時檔案完之後通知子執行緒

思路:         是主執行緒和多個寫檔案執行緒之間同步,每寫完一個檔案計數加1,如果計數值等於當前寫檔案個數的時候,表示檔案已經全部寫完。此時通過條件變數通知在該條件變數等待的主執行緒。此時主執行緒被喚醒,可以在所有檔案被寫完的條件下做一些動作 程式碼: pack

C++ini配置檔案GetPrivateProfileString WritePrivateProfileStr

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

C++ utf-8檔案

轉載自:https://blog.csdn.net/sdscscs22/article/details/53895416 UTF-8 UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字元編碼,又稱萬國碼。由Ken Thom

C 檔案(二進位制檔案

  我們將介紹 C 程式設計師如何建立、開啟、關閉文字檔案或二進位制檔案。 一個檔案,無論它是文字檔案還是二進位制檔案,都是代表了一系列的位元組。C 語言不僅提供了訪問頂層的函式,也提供了底層(OS)呼叫來處理儲存裝置上的檔案。本章將講解檔案管理的重要呼叫。 開啟檔案 您可

c# 記憶體對映檔案

.NET中使用MemoryMappedFile解決記憶體對映問題。使用起來很方便。但是不得不說,該方法應用場景確實沒有多少。或者根本不需要。c#已經提供了很多寫檔案的類和方法。我都感覺很重複和混亂了。   不多說,我用MemoryMappedFile寫了個demo,來進行檔

.NET/C# 中你可以在程式碼中 Main 函式,然後按需要隨時切換

.NET/C# 程式從 Main 函式開始執行,基本上各種書籍資料都是這麼寫的。不過,我們可以寫多個 Main 函式,然後在專案檔案中設定應該選擇哪一個 Main 函式。 你可能會覺得這樣沒有什麼用,不過如果你的應用程式在不同的編譯條件下有不同的啟動程式碼,或者

C語言隨機資料檔案(二)

int fseek(FILE * fp, long offset, int fromWhere):設定檔案位置標記,方法引數說明: fp:FILE型別指標,該指標對應的檔案即是檔案位置標記所標記的檔案; offset:偏移量; fromWhere:偏移起始點,其值可以為SEEK_SET、SEEK

C語言隨機資料檔案(一)

void rewind(FILE * fp):將檔案位置標記重新指向檔案開頭,該函式沒有返回值; 【例子】計算機D盤根目錄有一個存放學生資訊的stud.dat檔案,請先講檔案資訊顯示在控制檯,然後在將資料複製到F盤stud.dat檔案中。 #include <stdio.h> #

c++檔案中如何共用一個全域性變數

例子: 標頭檔案:state.h   原始檔:state.cpp         其它原始檔:t1.cpp  t2.cpp  t3.cpp, 這些原始檔都包含標頭檔案state.h。 需要定義一個全域性變數供這些原始檔中使用:方法如下 1、在 state.h宣告全域性變數: extern inta; 2、在

C++檔案共享同一標頭檔案時全域性變數的宣告

前言 在編寫非小型程式時,僅僅用到函式進行模組化是不夠的,由於函式眾多,在一個或幾個檔案中完成程式會造成單個程式檔案過長。這樣一來,不知不覺中提高的模組間的耦合性,擴大了程式的修改時間。這時候將功能分散到更多的模組中就變得尤為重要了。 那麼,保持一個統一的結

C++ Windows API INI檔案

BOOL WritePrivateProfileString( LPCTSTR lpAppName, // INI檔案中的一個欄位名[節名]可以有很多個節名 LPCTSTR lpKeyName, // lpAppName 下的一個鍵名,也就是裡面具體的變數名 LPCTSTR lpStri

Linux下檔案C++工程編寫、編譯要點

編譯流程: 假定有三個檔案:main.cpp: #include <iostream> #include "include/func1.hpp" int main(){ cout<<"this is main"<<endl; fu

C# .ini配置檔案

`class Ini { // 宣告INI檔案的寫操作函式 WritePrivateProfileString() [System.Runtime.InteropServices.DllImport("kernel32")] private static extern

C語言及程式設計進階例程-2 一個程式,檔案

演示:建立多檔案的專案main.c#include <stdio.h> int max(int x,int y); int main( ) { int a,b,c; printf("輸入兩數:"); scanf("%d %d", &a, &b

C++二進位制格式檔案

在實際應用中,為了節約儲存空間,檔案多會以二進位制格式儲存,所以有必要了解如何在C++中讀取二進位制檔案中的資料。 標頭檔案 使用C++讀取二進位制格式的檔案,首先應該將標頭檔案<fstr

Dev-C++:同時編譯檔案

Dev-C++同時編譯多個C檔案:    考察多原始碼檔案程式的編譯及標頭檔案的使用 :   如果程式的函式 分別放在不同的程式之中,那就必須是定義常量的#define指令對於每個檔案都可用:                 定義一個***.h檔案,儲存函式原型和常量定義