用C++程式碼代替記事本
阿新 • • 發佈:2018-11-09
新人第一次發文,請多多關照。(●'◡'●)
先說說這個程式的由來吧。
上學期做了C++的大作業,在其中用到了檔案流(讀檔案和寫檔案),當時的讀取方式是格式化讀取(從一個空格讀到下一空格,然後儲存讀到的資料),而且是對txt文件讀取,我便想到能否寫個程式來讀取文件中的全部內容?能否讀多種格式的檔案?(想想也知道不可能適用於所有的格式的文件,例如word文件要解碼)。
話不多說,先上程式碼。
#include <iostream> #include <fstream> #define filename_length 50 //可輸入的檔名字元長度 using namespace std; int main() { while (1) { cout << "請輸入檔名: "; char a[filename_length] = { 0 }; cin.getline(a, filename_length, '\n'); //將輸入讀入字元陣列a,讀到回車時結束 system("cls"); fstream file(a, ifstream::in); if (file) { //判斷檔案是否存在 char b; cout << a << "中的內容:"<<endl; while (!file.eof()) { //eof最好在get後判斷該次get是否讀到檔案末尾 b = file.get(); cout << b; } } else cout << "檔案不存在"<<endl; file.close(); system("pause"); system("cls"); } return 0; }
這串程式碼編譯生成exe檔案後,就可以通過exe檔案執行啦( ̄︶ ̄)↗
使用注意:
1. 執行時要輸入檔案的全名(包括字尾)才能讀取,當生成的exe應用程式與要訪問的文件不在同一目錄下時,要輸入文件的完整路徑(如C:\Users\xxx\Desktop),若檔名錯誤,則可重新輸入
2. 該程式只能正常開啟記事本能正常開啟的檔案,現發現的能正常開啟的檔案種類有:.txt、.bat、.cpp、.m(Matlab指令碼檔案)
該程式的優點是不用開啟預設應用來檢視內容(cpp和m檔案開啟軟體較慢)(也可切換開啟方式,用記事本開啟,只是操作麻煩點),而缺點
剛剛發現了的一個優點,用記事本開啟一些不能正常讀取的檔案(如 .big / .png檔案)時,可能出現非常龐大的錯誤輸出,使記事本卡頓乃至崩潰。而用該程式開啟時,雖會出現亂碼,但程式能迅速停止(輸出的亂碼量很小)。
若有錯誤,歡迎大佬們指正(~ ̄▽ ̄)~