Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 16.12.2019
Сообщений: 33
1

Работа с файлами

25.04.2020, 00:46. Показов 1352. Ответов 5

Author24 — интернет-сервис помощи студентам
Здравствуйте! Столкнулась с такой проблемой - программа завершает работу с кодом 139. Что это вообще такое? И нет нужного результата, т.е файл не пишется. Постановка задачи: считать текстовый файл winter.txt и выполнить над тестом преобразование: каждое второе слово удалить, (полученный вариант текста записать в новый файл). Поджскажите пожалуйста! Буду рада рабочему коду )
Текст файла:
Winter1, winter2.

Let’s go skate.

Winter3, winter4.

Don’t be lаte.

Winter5, winter6.

Let’s go rоll.

Winter_7, winter_8.

In the snow.

Winter, Winter!

Winter, Winter!
Вот код программы:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h> 
#include <math.h> 
#include <locale.h> 
#include <string.h> 
#include <stdlib.h>
#include <stdbool.h> 
#include <ctype.h> 
int main()
{
    setlocale(LC_ALL, "RUS");
    FILE* file;
    file = fopen("winter.txt", "r");
    FILE* in;
    char b[100];
    char* a;
    int n = 100;
    a[0] = '\0';
    char fname[100] = "winter2.txt";
    if ((in = fopen(fname, "w")) == NULL) {
        printf("\n\nОшибка открытия файла\n\n");
        return 0;
        for (int i = 0; fgets(fname, 100, file) != NULL; ++i)
        {
            if (i % 2 != 0)
            {
 
            }
            else
            {
                printf("%s\n", fname);
                strcat(a, fname);
            }
        }
 
        fputs(fname, in);
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2020, 00:46
Ответы с готовыми решениями:

Работа с файлами , хотелось бы с windows system файлами
всем привет, нужна интересная идея по программированию, работа с файлами , хотелось бы с windows...

Работа с файлами(Запись,чтение,работа с данными)
Здравствуйте, никак не могу осилить файлы... Для начала вот само задание: В справочной автовокзала...

Лабораторная работа №5. Работа с файлами и алгоритмы сортировки
1. Написать функцию Load для считывания из текстового файла (например, Workers.txt) информации о...

Работа с файлами, чтение/работа со строкой
Доброго времени суток. Начал работать с C++ Builder 6. Есть текстовый файл .txt с различными...

5
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12831 / 7568 / 1764
Регистрация: 25.07.2009
Сообщений: 13,959
25.04.2020, 01:10 2
Цитата Сообщение от iritdg Посмотреть сообщение
C
1
char* a;
Указатель не инициализирован, по сути содержит какое-то случайное значение. Однако уже через строчку:
Цитата Сообщение от iritdg Посмотреть сообщение
C
1
a[0] = '\0';
Это Вы куда '\0' записать пытаетесь?
0
0 / 0 / 0
Регистрация: 16.12.2019
Сообщений: 33
25.04.2020, 01:38  [ТС] 3
Указатель инициализировала, но в файл все равно пишется пустым(0 кб). Почему?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12831 / 7568 / 1764
Регистрация: 25.07.2009
Сообщений: 13,959
25.04.2020, 01:48 4
Цитата Сообщение от iritdg Посмотреть сообщение
но в файл все равно пишется пустым(0 кб). Почему?
наверное потому, что у Вас вся работа записана в ветви
Цитата Сообщение от iritdg Посмотреть сообщение
C
1
if ((in = fopen(fname, "w")) == NULL) {
да ещё и после
Цитата Сообщение от iritdg Посмотреть сообщение
C
1
return 0;
Скобку закрывающую } после строки с return поставьте - может что-то и запишется. Правда, не факт, что то, что нужно...

Добавлено через 2 минуты
Кстати
Цитата Сообщение от iritdg Посмотреть сообщение
Указатель инициализировала
чем, если не секрет?
0
0 / 0 / 0
Регистрация: 16.12.2019
Сообщений: 33
25.04.2020, 01:52  [ТС] 5
Так же как и b, [100]. А как понять в ветви? Я просто только начинаю работать на этом языке и многого ещё не понимаю)
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12831 / 7568 / 1764
Регистрация: 25.07.2009
Сообщений: 13,959
25.04.2020, 02:14 6
Цитата Сообщение от iritdg Посмотреть сообщение
А как понять в ветви?
Оператор if называют оператором ветвления потому, что в зависимости от результата его работы программа может выполняться разными путями (ветвями)
Код
if ( условие ) {
    одна ветвь
}
else {
    другая ветвь
}
В вашем случае
Цитата Сообщение от iritdg Посмотреть сообщение
if ((in = fopen(fname, "w")) == NULL)
если файл не открылся, выполняется то, что в блоке { ... } после него находится.
По-хорошему то, что должно при успешном открытии происходить, нужно помещать в else { ... }, но поскольку у Вас там return 0; присутствует, достаточно просто эту ветвь закрыть - при успешном открытии файла программа продолжит выполнение со следующей строки.
Возвращать 0 в этом случае, кстати, тоже не правильно - 0 возвращается при успешном выполнении программы, при ошибке должно возвращаться небольшое целое число, отличное от нуля. Вспомните, с чего начиналось
Цитата Сообщение от iritdg Посмотреть сообщение
программа завершает работу с кодом 139. Что это вообще такое?
- тот самый код ошибки при неудачном завершении программы.
0
25.04.2020, 02:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2020, 02:14
Помогаю со студенческими работами здесь

работа с файлами
помогите плиз решить в с++.очень прошу.заранее спасибо!!!!!!!!!! Задача 1. Дан файл целых...

Работа с файлами
Здравствуйте, столкнулся с двумя проблемами. 1) При считывании текста из файла читается только...

Работа с файлами(Си)
Можете помочь? Сформировать файл &quot;В&quot;, записями которого являются: фамилии писателей, инициалы,...

работа с файлами
1. Дан текстовый файл, фразы в котором отделены друг от друга точками, а слова – пробелами и...

Работа с файлами
У меня есть файл, в котором по строкам записана дата, а после любое число. Примерно так:...

Работа с файлами в VB
Существует 2 файла типа Sequential (.txt). код на их создание написали, помогите как отсортировать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru