1. 程式人生 > >用C++程式碼代替記事本

用C++程式碼代替記事本

新人第一次發文,請多多關照。(●'◡'●)

 

先說說這個程式的由來吧。

上學期做了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檔案開啟軟體較慢)(也可切換開啟方式,用記事本開啟,只是操作麻煩點),而缺點

是要輸入檔名(對於同路徑、檔名簡單的文件開啟較方便)(不同路徑時可以通過移動exe檔案達到同路徑)

剛剛發現了的一個優點,用記事本開啟一些不能正常讀取的檔案(如 .big / .png檔案)時,可能出現非常龐大的錯誤輸出,使記事本卡頓乃至崩潰。而用該程式開啟時,雖會出現亂碼,但程式能迅速停止(輸出的亂碼量很小)。

 

若有錯誤,歡迎大佬們指正(~ ̄▽ ̄)~