中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

c語言如何刪除文件中的某一行

小億
791
2023-08-07 22:27:01
欄目: 編程語言

在C語言中,要刪除文件中的某一行,可以實現以下步驟:

  1. 打開待操作的文件,使用fopen()函數打開文件,指定打開方式為讀寫模式(“r+”)。

  2. 創建一個臨時文件,使用fopen()函數創建一個新的臨時文件,并指定打開方式為寫模式(“w”)。

  3. 逐行讀取原文件,并將需要刪除的行過濾掉,將其余行寫入臨時文件。

  4. 關閉原文件和臨時文件。

  5. 刪除原文件,使用remove()函數刪除原文件。

  6. 將臨時文件重命名為原文件,使用rename()函數將臨時文件重命名為原文件。

下面是一個示例代碼:

#include <stdio.h>
void deleteLineFromFile(const char* filename, int line_number) {
FILE *file, *temp;
char ch;
int current_line = 1;
// 打開原文件
file = fopen(filename, "r+");
if (file == NULL) {
printf("無法打開文件\n");
return;
}
// 創建臨時文件
temp = fopen("temp.txt", "w");
if (temp == NULL) {
printf("無法創建臨時文件\n");
fclose(file);
return;
}
// 逐行讀取原文件,將非待刪除行寫入臨時文件
ch = fgetc(file);
while (ch != EOF) {
if (current_line != line_number) {
fputc(ch, temp);
}
if (ch == '\n') {
current_line++;
}
ch = fgetc(file);
}
// 關閉文件
fclose(file);
fclose(temp);
// 刪除原文件
remove(filename);
// 將臨時文件重命名為原文件
rename("temp.txt", filename);
printf("已刪除第 %d 行\n", line_number);
}
int main() {
const char* filename = "example.txt";
int line_number = 3;
deleteLineFromFile(filename, line_number);
return 0;
}

在示例代碼中,將要刪除的文件名作為參數傳遞給deleteLineFromFile()函數,并指定要刪除的行號。函數會逐行讀取原文件并將非待刪除行寫入臨時文件,最后將臨時文件重命名為原文件。運行示例代碼后,將會刪除文件"example.txt"中的第3行。

0
卢氏县| 金山区| 崇州市| 济源市| 汉寿县| 苍南县| 灵山县| 衡水市| 延长县| 屯昌县| 涡阳县| 福海县| 襄樊市| 砀山县| 历史| 伊春市| 西畴县| 延寿县| 寿宁县| 江津市| 兴文县| 奎屯市| 定州市| 正蓝旗| 侯马市| 河西区| 绥滨县| 霍城县| 合山市| 张家港市| 三门县| 玉环县| 女性| 英德市| 阿瓦提县| 丁青县| 连云港市| 怀远县| 白银市| 三穗县| 繁峙县|