天天看點

《面向對象程式設計》課程作業三

  • github連結
  • 作業連結

學習了一下指令行參數,複習了一下檔案讀寫,然後修改代碼把全局變量什麼的給改成參數傳遞了。

關于指令行參數在學習的時候寫了一個小參考執行個體:

#include <stdio.h>
#include<fstream>

using namespace std;

/*

D:\>a.exe  d://in.txt  d://out.txt
  
*/
int readFile(char *filename)//filename是絕對路徑
{
	int n;
	/*errno_t err;
	FILE *stream;
	err = fopen_s(&stream, filename, "r");
	fscanf_s(stream, "%d", &n);
	*/
	fstream f;
	f.open(filename, ios::in);
	f >> n;
	f.close();
	return n;
}

void SaveResult(char *filename)
{
	fstream f;
	f.open(filename, ios::out);

	f << "i love" << endl;
	f << "you" << endl;

	f.close();
	return;
}

int main(int argc, char *argv[])
{
	int n = readFile(argv[1]);
	SaveResult(argv[2]);
	printf("%d\n", n);
	return 0;
}
           

關于從一個檔案中讀取一個整數,可以選擇用

fscanf

,用一個格式符擷取。也可以直接用

file >> n

從檔案流提取一個整數到整型變量 n 中。

在 Windows 系統下要運作

cmd

(如果在Linux下就簡單多了):

《面向對象程式設計》課程作業三

我把程式

a.exe

和語言資源

LangResourses

直接拷貝到了 User 檔案夾下,沒有使用

cd

換目錄或是輸入程式的絕對路徑。

在檔案夾下面建立一個

in.txt

裡面放一個整數,我寫的是 5。

在指令行中輸入

a.exe in.txt out.txt

《面向對象程式設計》課程作業三

運作完成後檔案夾中多出來一個

out.txt

檔案。

《面向對象程式設計》課程作業三

運作結果:

《面向對象程式設計》課程作業三

覺得棟哥的角色變成了一個一直提要求的 PM(……)。不過我還挺喜歡這種 PM 的,因為棟哥的要求可以讓我不斷的自學一些新的東西,不斷改進自己的程式。在以前,一些代碼打完了是很少會維護或疊代的。而這個在今年寒假末第一次完成的六百多行代碼的小程式,現在維護到近千行了。

參考連結:

  • C++檔案操作詳解
  • 帶參數的main函數