1. 程式人生 > 其它 >C語言--檔案操作--馮諾依曼體系結構--檔案操作--字串和整數的轉換練習

C語言--檔案操作--馮諾依曼體系結構--檔案操作--字串和整數的轉換練習

技術標籤:C語言自我理解c語言

馮諾依曼體系結構

我首先引入關於記憶體結構的基本概念:
在這裡插入圖片描述

檔案操作

檔案路徑:

  1. 相對路徑 D:\abc\123\bin\qq.exe
  2. 絕對路徑 .\qq.exe
1.開啟檔案

檔案指標/控制代碼(handler) :在對於檔案的操作中,常會有檔案對應的一個結構體儲存著我們要應用的資訊,就叫做檔案指標,當開啟一個檔案的時候,系統會自動建立,我們不必深究.

FILE* p;		//檔案指標變數

我們可以通過檔案指標變數找到和它相互關聯的檔案

FILE* f = fopen("在電腦中的路徑", "具體操作");

因為對於檔案的開啟的操作也有失敗的時候,所以我們要進行一個NULL的判斷,這裡就涉及到erron

的問題:
知識點:
errno: 錯誤碼
strerror:對錯誤碼進行翻譯
perror=strerror(errno)

FILE* f = fopen("d:/123/test.txt", "w");		//首先運用fopen 開啟
	if (f == NULL) {							//如果開啟後還為空就說明開啟失敗
		printf("檔案開啟失敗! errno = %d, %s\n", errno, strerror(errno));
		perror("檔案開啟失敗!");
		system("pause"
); return 1; } printf("檔案開啟成功!\n");

fopen 具體含義:

檔案使用方式含義如果指定檔案不存在
“r”(只讀)為了輸入資料,開啟一個已經存在的文字檔案出錯
“w”(只寫)為了輸出資料,開啟一個文字檔案建立一個新的檔案
“a”(追加)向文字檔案尾新增資料出錯
“rb”(只讀)為了輸入資料,開啟一個二進位制檔案出錯
“wb”(只寫)為了輸出資料,開啟一個二進位制檔案建立一個新的檔案
“ab”(追加)向一個二進位制檔案尾新增資料出錯
“r+”(讀寫)為了讀和寫,開啟一個文字檔案出錯
“w+”(讀寫)為了讀和寫,建議一個新的檔案建立一個新的檔案
“a+”(讀寫)開啟一個檔案,在檔案尾進行讀寫建立一個新的檔案
“rb+”(讀寫)為了讀和寫開啟一個二進位制檔案出錯
“wb+”(讀寫)為了讀和寫,新建一個新的二進位制檔案建立一個新的檔案
“ab+”(讀寫)開啟一個二進位制檔案,在檔案尾進行讀和寫建立一個新的檔案
2.讀檔案

對於讀操作也是很簡單,都是建立一個新的字元陣列,運用fread的操作將檔案中儲存的資訊進行寫入,在呼叫輸出函式將其打印出來

	fread(要寫入的地方,對應的位元組,有多少個這樣的位元組,檔案指標);

	char buf[1024] = { 0 };			//建立字元陣列
	int n = fread(buf, 1, 1024, f);	
	printf("%s\n", buf);			//將讀入的檔案進行列印
3.寫檔案
	fwrite(要儲存的東西,對應的位元組,有多少個這樣的位元組,傳入的檔案)
	
	char buf[1024] = "ai bian cheng";
	int n = fwrite(buf, 1, strlen(buf), f);
	if (n < strlen(buf)) {		//當寫入成功就會返回元素個數,當失敗就會返回<0的值>
		perror("fwrite");		//表明錯誤原因
	}
4.關閉檔案
	fclose(f);			//在每對一個檔案進行利用的時候,在最後就要進行關閉,否則就會記憶體洩漏

知識點:
1.sprintf 把格式化的結果寫到字串中
2.sscanf 是從格式化字串中解析結果.

字串和整數的轉換

整數轉字串:

int num=10;
char buf[1024]={0};

sprintf(buf,"%d",num);		//將整型的10存放到字元型數組裡面

printf("%s\n",buf);			//輸出

對於整數轉字串還有一個itoa的操作符,但是由於在不同的編譯器裡面會經常性報錯,這個函式我就不進行介紹了,直接略過.
字串轉整數:

char *bb = "321";			
int a = 0;					//初始化a

sscanf(bb,"%d",&a);			//將字元型的321以整型的形式存放在a中

printf("%d\n",a);
char *str = "1234";
	
int temp = atoi(str);

printf("%d\n",temp);

大家多敲程式碼,一起加油!!!