C语言是一种十分流行的编程语言,可以用来完成各种各样的任务。其中一项任务就是删除JSON文件内容。本文将介绍如何在C语言中使用pre标签删除JSON文件内容。
int main() { FILE *fp; char data[1024], data_new[1024]; int key_count = 0, key_ref[100][2], i, j, len, flag, num; fp = fopen("data.json", "r+"); if (fp == NULL) { printf("Unable to open file.\n"); return 0; } fgets(data, 1024, fp); len = strlen(data); printf("Enter the key to delete: "); scanf("%s", data_new); for (i = 0; i< len; i++) { if (data[i] == '\"') { flag = 1; if (key_count % 2 == 0) { key_ref[key_count / 2][0] = i; } else { key_ref[key_count / 2][1] = i; num = i - key_ref[key_count / 2][0] + 1; if (strncmp(data + key_ref[key_count / 2][0], data_new, num) == 0) { for (j = key_ref[key_count / 2 - 1][1] + 2; j< key_ref[key_count / 2][0] - 2; j++) { data_new[j - key_ref[key_count / 2 - 1][1] - 2] = data[j]; } data_new[j - key_ref[key_count / 2 - 1][1] - 2] = '\0'; } } key_count++; } else if (key_count != 0 && flag == 1 && data[i] == ':') { if (strncmp(data + key_ref[key_count / 2 - 1][0], data_new, key_ref[key_count / 2 - 1][1] - key_ref[key_count / 2 - 1][0] + 1) == 0) { if (data[i + 1] == '\"') { for (j = i + 3; j< len; j++) { data_new[j - i - 3] = data[j]; } data_new[j - i - 3] = '\0'; } else { for (j = i + 1; j< len; j++) { data_new[j - i - 1] = data[j]; } data_new[j - i - 1] = '\0'; } } flag = 0; } } if (key_count == 0) { printf("Key not found.\n"); } else { fseek(fp, 0L, SEEK_SET); fwrite(data_new, strlen(data_new), 1, fp); ftruncate(fileno(fp), strlen(data_new)); fclose(fp); printf("Key deleted successfully.\n"); } return 0; }
以上就是使用C语言删除JSON文件内容的代码,其中使用了文件读写和字符串操作的相关函数,需要有一定的编程基础才能理解。通过以上代码的改动,可以实现任意需要删除的JSON文件内容。