Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение из файла, Имя файла вводит пользователь 
:(
    Опции темы
Veroonya
Дата 25.11.2011, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 10.10.2008
Где: Россия, Омск

Репутация: нет
Всего: 1



Задача состоит в том, чтобы открыть файл, считать с него массив слов, разделенных запятой, и произвести с ним некоторые действия. Имя файла должно быть введено пользователем.
В коде указано, в каком месте возникают ошибки сегментации, объясните, пожалуйста, почему, и помогите исправить.
Код


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

int  readFile (char *fileName, char **word) {
//Процедура должна открыть файл и считать с него массив слов. На выходе нужно n - число слов и word - массив слов
     FILE *read;
     int n =0;
     word = new char *[30];
     //Открываем файл для чтения
     read = fopen (fileName, "rt");   //Если в main сделать char fileName[10];,то строка считывается, но тогда не может открыться файл.
     //Проверяем, открылся ли
     if (read==NULL) {
       //Выводим сообщение об ошибке
       printf("Error while opening file to read!");
       getch();
       //выходим из процедуры
       return 0;
    } 
    
    //Читаем файл по словам, разделенным запятой
    while (!feof(read)) {
          fscanf(read, "%s,",word[n]);
          //Прибавляем нумерацию слов
          n++;
    }
    return n;
}

int main(){
    FILE *write;
    char *fileName;
    char **word = new char *[30];
    int n;
    
    //Просим ввести имя файла
    printf ("Input file name to read: ");
    scanf("%s", fileName);      //Здесь ошибка сегментации
    
    n = readFile(fileName, word);
}

PM MAIL ICQ   Вверх
bsa
Дата 25.11.2011, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Veroonya, указатель fileName указывает непонятно куда. А должен на массив символов, достаточного для имени файла размера. Почитай про указатели и ссылки.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0810 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.