淘先锋技术网

首页 1 2 3 4 5 6 7

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文件内容。