對於要處理同樣的資料,我喜歡批次處理,這樣子可以節省不少時間,而這些資料可能分散在許多檔案之中,那麼批次開檔(無論輸入或輸出)就顯得相當重要!
這裡紀錄如何批次開檔同名格式,什麼是同名格式呢?我將之定義為名稱相同而序號不同,例如:
pix (0).txt
pix (1).txt
pix (2).txt
…
需要一點技巧去組合char+int+char,也就是組合成整個檔名(檔名+序號+副檔名),我用了迴圈,函式有itoa和strcat,加上開檔、關檔,即可完成!
/**
Theme: Open File whth similar name format (Batch)
Compiler: Dev C++ 4.9.9.2
Date: 100/06/05
Author: ShengWen
Blog: https://cg2010studio.wordpress.com/
*/
#include<fstream>
using namespace std;
fstream fout;
int main(){
for(int i=0; i<=10; i++){
char name[15]="pix (";//檔名稱
char format[]=").txt";//附檔名稱
char c[4];//限制序號為3位數以內[0, 999]
itoa(i, c, 10);//將i(int)以10為基底轉換成c(char)
strcat(name, c);//將c接到name之後
strcat(name, format);//將format接到name之後
fout.open(name, ios::out);//開檔
fout<<i<<endl;//輸出到檔案
fout.close();//關檔
}
system("pause");
return EXIT_SUCCESS;
}
程式碼我展示輸出模式,於是執行結果會產生11個(0~10)檔案,裡頭有數字(0~10),若想讀檔,就去改ios::out為ios::in。
話說,這個程式碼可以用來惡作劇,將執行檔傳給想捉弄的人,想辦法誘使對方開啟它,一旦執行完畢,該資料夾就會產生成千上萬(自己設定)個空檔案(當然也可以有字元在檔案中),對方就會很生氣,因為要慢慢地把檔案給刪掉XD
Comments on: "[C++] 批次開檔~同名格式 (Open File whth similar name format (Batch))" (1)
[…] 參考: 1.逍遙文工作室, [C++] 批次開檔~同名格式(Batch) […]
讚Liked by 1 person