91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
靖远县| 渭源县| 清镇市| 芦山县| 凤翔县| 平远县| 巴东县| 商河县| 龙口市| 江都市| 定州市| 贡觉县| 蓝田县| 岱山县| 赣榆县| 景德镇市| 浪卡子县| 荆门市| 蓬安县| 大同市| 会同县| 张掖市| 张家口市| 文登市| 凤冈县| 昌吉市| 岫岩| 贺兰县| 张家川| 珲春市| 新安县| 特克斯县| 清原| 剑河县| 龙游县| 江都市| 镇沅| 宁强县| 诸城市| 田阳县| 榆社县|