【C 语言】文件操作 ( 配置文件读写 | 读取配置文件 | 函数接口形参 | 读取配置文件的逐行遍历操作 | 读取一行文本 | 查找字符 | 删除字符串前后空格 )
生活随笔
收集整理的這篇文章主要介紹了
【C 语言】文件操作 ( 配置文件读写 | 读取配置文件 | 函数接口形参 | 读取配置文件的逐行遍历操作 | 读取一行文本 | 查找字符 | 删除字符串前后空格 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、函數接口形參
- 二、讀取配置文件的逐行遍歷操作
- 1、讀取配置文件的逐行遍歷操作
- 2、讀取一行數據
- 3、查找字符
- 4、刪除字符串前后的空格
- 5、完整代碼示例
一、函數接口形參
函數作用 : 從 char *filename 文件中 , 查找 char *key 關鍵字 對應的 值 ; 將查找到的值 寫出到 char *value 指針指向的內存中 , 將值的長度寫出到 int *value_len 指向的內存中 ;
代碼示例 :
/*** @brief read_config_file 讀取配置文件* @param filename 文件名* @param key 鍵* @param value 值* @param value_len 值字符串長度* @return*/ int read_config_file(char *filename /*in*/, char *key /*in*/, char *value/*in out*/, int *value_len /*out*/)二、讀取配置文件的逐行遍歷操作
1、讀取配置文件的逐行遍歷操作
讀取配置文件的逐行遍歷操作 :
- 讀取一行文本數據
- 先判斷該行數據中, 是否包含 ‘=’ 字符
- 然后查找該行數據中 , 是否存在 Key 關鍵字字符串
- 如果存在 Key 關鍵字 , 則繼續查找 Key 關鍵字右側是否有 ‘=’ 字符
- 如果找到了 ‘=’ 字符 , 則越過該字符 , 剩下的就是 Value 字符串信息 ;
- 刪除 Value 字符串左右兩側的空格信息
- 使用兩個指針分別指向 Value 字符串兩側 ;
2、讀取一行數據
// 獲取一行數據fgets(line_buffer, MAX_LINE, fp);
3、查找字符
// 查找 '=' 字符p = strchr(line_buffer, '=');// 如果沒有找到 '=' 字符 , 則退出 , 繼續執行下一次循環if (p == NULL){continue;}
4、刪除字符串前后的空格
// 獲取 Value 起始位置for(;;){// 去掉開始位置的空格if (*p == ' '){p ++ ;}else{start = p;if (*start == '\n'){// 進入到該分支 , 說明 Value 值是空的// 直接退出即可goto End;}break;}}// 獲取 Value 結束位置// 從 Value 的不為空格的位置開始遍歷for(;;){// 遇到空格或回車 , 說明讀取到了最后的位置, 或者換行位置if ((*p == ' ' || *p == '\n')){break;}else{p ++;}}end = p;
5、完整代碼示例
// 逐行遍歷 配置文件 中的文本數據while (!feof(fp)){// 清空 line_buffer 中的遺留數據 , 避免被上一次寫入的數據干擾memset(line_buffer, 0, sizeof(line_buffer));// 獲取一行數據fgets(line_buffer, MAX_LINE, fp);// 查找 '=' 字符p = strchr(line_buffer, '=');// 如果沒有找到 '=' 字符 , 則退出 , 繼續執行下一次循環if (p == NULL){continue;}// 查找 Key 值// 如果找到了 Key 關鍵字 , 則返回的指針 p 指向 Key 關鍵字出現的首地址中p = strstr(line_buffer, key);// 如果沒有找到 Key 關鍵字 , 退出執行下一次循環換if (p == NULL){continue;}// 越過 Key 關鍵字 , 從 Key 關鍵字后面的內容遍歷p = p + strlen(key);// 查找 '=' 字符p = strchr(p, '=');// 如果沒有找到 '=' 字符 , 則退出 , 繼續執行下一次循環if (p == NULL){continue;}// 越過 '=' 字符 , 從 '=' 字符 后面的內容遍歷p = p + 1;// 獲取 Value 起始位置for(;;){// 去掉開始位置的空格if (*p == ' '){p ++ ;}else{start = p;if (*start == '\n'){// 進入到該分支 , 說明 Value 值是空的// 直接退出即可goto End;}break;}}// 獲取 Value 結束位置// 從 Value 的不為空格的位置開始遍歷for(;;){// 遇到空格或回車 , 說明讀取到了最后的位置, 或者換行位置if ((*p == ' ' || *p == '\n')){break;}else{p ++;}}end = p;// 通過 間接賦值 設置 Value 值長度*value_len = end - start;// 通過 間接賦值 設置 Value 值數據內容memcpy(value, start, end - start);}
總結
以上是生活随笔為你收集整理的【C 语言】文件操作 ( 配置文件读写 | 读取配置文件 | 函数接口形参 | 读取配置文件的逐行遍历操作 | 读取一行文本 | 查找字符 | 删除字符串前后空格 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【C 语言】文件操作 ( 配置文件读写
- 下一篇: 【C 语言】文件操作 ( 配置文件读写