C語言--檔案操作--馮諾依曼體系結構--檔案操作--字串和整數的轉換練習
阿新 • • 發佈:2021-02-08
馮諾依曼體系結構
我首先引入關於記憶體結構的基本概念:
檔案操作
檔案路徑:
- 相對路徑 D:\abc\123\bin\qq.exe
- 絕對路徑 .\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);
大家多敲程式碼,一起加油!!!