После fclose(fpointer)
я пытаюсь удалить этот файл с помощью system("del text_file.txt");
, но вывод говорит, что «процесс не может получить доступ к файлу, потому что он используется другим процессом».
Вот мой код:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
FILE * fpointer;
int main() {
int times;
char option;
//Read the file
if ((fpointer = fopen("file_open.txt", "r")) == NULL) //If this file dont exist
{
fpointer = fopen("file_open.txt", "w");//Create the file
fprintf(fpointer, "0");
fclose(fpointer);
fpointer = fopen("file_open.txt", "r");//Reopen with reading mode
}
else
{
fpointer = fopen("file_open.txt", "r");
}
fscanf(fpointer, "%d", ×);//Save the number of note to variable
fclose(fpointer);
//Add 1 times when the program launch
fpointer = fopen("file_open.txt", "w");
times++;
fprintf(fpointer, "%d", times);//Save current variable to file
fclose(fpointer);
printf("You have launch this program %d times!\n", times);
printf("Do you want to reset the number?(Y/N)\n>>");
scanf(" %c", &option);
if (option == 'Y')
{
system("del file_open.txt");//delete the file
}
else
{
printf("\nThe program is exiting now...\n");
_getch();//Press any key to exit
exit(0);
}
return 0;
}
Примечание:
1) Предполагая, что ввод всегда корректен.
2) Я пытаюсь не заменять file_open.txt
на 1
Можно ли удалить файл с помощью system("del text_file.txt")
?
Редактировать: Исправлены некоторые ошибки.
Edit:
Я пытался использовать remove()
в своем коде, эту часть я изменил:
if (option == 'Y')
{
int status;
char file_name[] = "file_open.txt";
status = remove(file_name);//delete the file
if (status == 0)
{
printf("%s file deleted successfully.\n", file_name);
}
else
{
printf("Unable to delete the file\n");
perror("Following error occurred");
}
}
else
{
printf("\nThe program is exiting now...\n");
_getch();//Press any key to exit
exit(0);
}
Проблема решена удалением fopen(fpointer)
, спасибо.