C语言删除txt文件
时间: 2023-08-30 11:06:13 浏览: 90
要删除C语言中的txt文件,可以使用remove函数来实现。示例代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char file_name[] = "example.txt";
int status;
status = remove(file_name);
if (status == 0) {
printf("%s 文件已成功删除。\n", file_name);
} else {
printf("删除 %s 文件失败。\n", file_name);
}
return 0;
}
```
在上面的代码中,我们定义了一个名为file_name的字符串变量,它存储了我们想要删除的txt文件的名称。然后,我们使用remove函数来删除文件,并将结果存储在status变量中。如果status等于0,则表示文件已成功删除,否则表示删除失败。最后,我们根据status的值输出相应的消息。
相关问题
C语言删除txt文件某一行
在C语言中,如果要删除txt文件中的某一行,可以按照以下步骤进行:
1. 打开原始文件和目标文件。原始文件是要删除行的文件,目标文件是删除行后的文件。
2. 读取原始文件的每一行,如果不是要删除的行,则将其写入目标文件。
3. 关闭原始文件和目标文件。
4. 删除原始文件。
5. 将目标文件重命名为原始文件名。
以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
FILE *fp1, *fp2;
char filename[100], temp[] = "temp.txt";
char ch[100];
int delete_line, count = 0;
printf("Enter file name: ");
scanf("%s", filename);
fp1 = fopen(filename, "r");
if (fp1 == NULL) {
printf("File doesn't exist.\n");
return 0;
}
fp2 = fopen(temp, "w");
if (fp2 == NULL) {
printf("Error while creating temporary file.\n");
fclose(fp1);
return 0;
}
printf("Enter line number to be deleted: ");
scanf("%d", &delete_line);
while (fgets(ch, 100, fp1)) {
count++;
if (count != delete_line) {
fputs(ch, fp2);
}
}
fclose(fp1);
fclose(fp2);
remove(filename);
rename(temp, filename);
printf("Line successfully deleted.\n");
return 0;
}
```
请注意,以上代码只能删除txt文件中的文本行,如果有其他类型的数据(例如二进制数据),则可能会导致意外的行为。
c语言如何删除txt文件某一行
在 C 语言中,删除文本文件中的某一行可以通过以下步骤实现:
1. 先将原文件内容读入内存,并在内存中删除要删除的行。
2. 清空原文件内容,并将内存中修改后的内容写入文件。
下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char filename[100];
int line_to_delete;
// 获取要操作的文件名和要删除的行号
printf("Enter filename: ");
scanf("%s", filename);
printf("Enter line to delete: ");
scanf("%d", &line_to_delete);
// 打开文件
FILE *fp = fopen(filename, "r");
if (fp == NULL) {
printf("Error opening file\n");
exit(1);
}
// 统计文件中的行数
int line_count = 0;
char c;
while ((c = fgetc(fp)) != EOF) {
if (c == '\n') {
line_count++;
}
}
// 关闭文件并重新打开
fclose(fp);
fp = fopen(filename, "r");
if (fp == NULL) {
printf("Error opening file\n");
exit(1);
}
// 分配内存并读入文件内容
char **lines = (char **) malloc(sizeof(char *) * line_count);
int i = 0;
size_t len = 0;
while (getline(&lines[i], &len, fp) != -1) {
i++;
}
// 关闭文件并重新打开
fclose(fp);
fp = fopen(filename, "w");
if (fp == NULL) {
printf("Error opening file\n");
exit(1);
}
// 将内存中的内容写入文件
for (i = 0; i < line_count; i++) {
if (i != line_to_delete - 1) {
fprintf(fp, "%s", lines[i]);
}
}
// 释放内存并关闭文件
for (i = 0; i < line_count; i++) {
free(lines[i]);
}
free(lines);
fclose(fp);
printf("Line %d has been deleted from file %s.\n", line_to_delete, filename);
return 0;
}
```
注意,上述代码中未进行错误处理,实际使用中应该考虑各种错误情况并进行相应的处理。