Fopen не работает в VS 2013 - C (СИ)
Формулировка задачи:
ребята, написал код в visual studio 2013, но она не хочет компилировать и выдаёт ошибку с fopen. что делать?
Решение задачи: «Fopen не работает в VS 2013»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
int main(void)
{
int i;
char buff[] = "Показать код. Показать текст ошибки. Ждать, гуглить.";
char match[] = "Ждать";
char insert[] = "Не ждать, ";
char delim[] = " ";
char *word;
FILE *f;
f = fopen("text.txt", "w");
if(!f)
puts("ERROR"), exit(1);
word = strtok(buff, delim);
for(i = 0; word != '\0'; i++)
{
if(strstr(word, match))
{
fprintf(f, "%s", insert);
} else {
printf("%s ", word);
}
word = strtok(NULL, delim);
}
fclose(f);
return 0;
}
Объяснение кода листинга программы
- Объединение файлов
stdio.hиstring.hв начале блока кода. - Определение функции main как точки входа в программу.
- Создание буфера с текстом
Показать код. Показать текст ошибки. Ждать, гуглить.и присвоение его переменной buff. - Создание массива match с текстом
Ждать. - Создание массива insert с текстом
Не ждать,. - Создание массива delim с текстом
. - Объявление переменной word типа указатель на char и инициализация ее значением buff.
- Объявление переменной f типа FILE* и инициализация ее значением fopen(
text.txt,w). - Проверка значения переменной f на NULL с помощью оператора if. Если f равно NULL, то выводится сообщение об ошибке
ERRORи программа завершается с кодом 1. - Создание цикла for, который будет выполняться до тех пор, пока переменная word не станет равной NULL.
- Внутри цикла проверка наличия подстроки match в слове word с помощью функции strstr.
- Если подстрока найдена, то к файлу f добавляется текст из массива insert с помощью функции fprintf.
- Если подстрока не найдена, то на экран выводится слово word с помощью функции printf.
- После цикла for переменная word обновляется значением NULL.
- Закрытие файла f с помощью функции fclose.
- Завершение программы с кодом 0.
- В данном коде используется стандартный ввод/вывод, поэтому его можно запустить только в консоли.
- В данном коде используется функция fopen для открытия файла
text.txtв режиме записиw. - Если файл не удалось открыть, то программа выведет сообщение об ошибке
ERRORи завершится с кодом 1. - В данном коде используется цикл for для обработки каждого слова в буфере buff.