Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2016, 05:25   #1
zaira001002
Форумчанин
 
Аватар для zaira001002
 
Регистрация: 13.09.2012
Сообщений: 122
По умолчанию Запись в файл ( Си )

Почему у меня программа вылетает при попытке записать в файл переменную? Вот фрагменты программы, где работаю с файлом :
Код:
 filename = argv[2];
    FILE* file2 = fopen(filename, "w");
    if (file2 == NULL)
    {
        printf("\nError: Failed to open file:%s!\n", filename);
        return FAILED_OPEN;
    }
    else
    {
        filter(start, &col, sred, &start_new);
        sort_arr(start_new, col);
        write_arr(file2, start_new, col);
        fclose(file2);
        free(start);
        return OK;
    }
Код:
#include "write_arr.h"

/* Печатает массив, элементы которого больше среднего арифметического, в файл*/
void write_arr(FILE *f, int *start_new, int col)
{
    int *first;

    first = start_new;

    printf("\n  col = %d ", col );
    for (int i = 0; i < col; i++)
    {
        printf("\n %d ", *first);
        fprintf(f,"%d ",*first);
        first++;
    }
    printf("OK");
}
zaira001002 вне форума Ответить с цитированием
Старый 18.11.2016, 23:00   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,551
По умолчанию

Опишите, как вызывается программа ? почитайте http://younglinux.info/c/argc-argv
digitalis вне форума Ответить с цитированием
Старый 20.11.2016, 12:29   #3
zaira001002
Форумчанин
 
Аватар для zaira001002
 
Регистрация: 13.09.2012
Сообщений: 122
По умолчанию

В командной строке вводим .exe файл и два текстовых файла, в первом есть содержимое , второй пустой( куда мы и будем записывать) программа вся компилируется и работает верно до момента как только компилятор обращается к fprintf(), так сразу и вылетает).

Последний раз редактировалось zaira001002; 20.11.2016 в 12:33.
zaira001002 вне форума Ответить с цитированием
Старый 20.11.2016, 12:53   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Вылетает с какой ошибкой? Где открытие f? start_new валидный? Не nullptr?
p51x вне форума Ответить с цитированием
Старый 20.11.2016, 13:56   #5
zaira001002
Форумчанин
 
Аватар для zaira001002
 
Регистрация: 13.09.2012
Сообщений: 122
По умолчанию

у меня просто идет закрытие программы, а так, файл успешно открывается... и открываю файл на запись, а вот записать нельзя( с указателем проблем нет, я для того и печатаю на экран значение указателя, чтобы убедиться , что все ок. компилятор содержимое указателя не хочет записывать в файл( будто требую выполнить невозможную операцию. Насчет открытия f, в первом куске кода мы и проверяем на успешное открытие файла file2, и передаем ее в функцию write_arr, которая и работает ошибочно

Последний раз редактировалось zaira001002; 20.11.2016 в 14:04.
zaira001002 вне форума Ответить с цитированием
Старый 20.11.2016, 14:02   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Права на запись есть? Запустите под отладчиком - там просто так не закроется.
p51x вне форума Ответить с цитированием
Старый 20.11.2016, 14:05   #7
zaira001002
Форумчанин
 
Аватар для zaira001002
 
Регистрация: 13.09.2012
Сообщений: 122
По умолчанию

как это сделать? одногруппник вроде пытался запустить от имени администратора, все равно вылетало.... подскажите, как мне это сделать?
zaira001002 вне форума Ответить с цитированием
Старый 20.11.2016, 14:07   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Нажмите в ИДЕ кнопку отладка
p51x вне форума Ответить с цитированием
Старый 20.11.2016, 14:09   #9
zaira001002
Форумчанин
 
Аватар для zaira001002
 
Регистрация: 13.09.2012
Сообщений: 122
По умолчанию

Минутку,я все не так поняла, вы имели в виду пошагово запустить прогу?
zaira001002 вне форума Ответить с цитированием
Старый 20.11.2016, 14:26   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

https://ru.wikipedia.org/wiki/%D0%9E...BC%D0%BC%D1%8B
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись в файл Aelon Общие вопросы C/C++ 2 29.05.2012 11:51
Запись в файл Intess Общие вопросы C/C++ 5 20.11.2011 02:47
Запись информации в файл в файл Anubys Win Api 0 04.11.2011 23:27
запись в файл $_Unit_$ Общие вопросы C/C++ 3 23.06.2009 12:59