160 / 160 / 30
Регистрация: 09.11.2012
Сообщений: 1,008
|
||||||
1 | ||||||
Построчное чтение файла в массив09.11.2012, 09:17. Показов 8709. Ответов 6
Метки нет (Все метки)
доброго всем своими силами изучаю C. Поставил себе задачу:
Есть некий файл. Нужно читать его построчно и писать в массив строки, затем вывести их на экран. Ни с файлами, ни с массивами и строками работать не умею Как я пытался решить задачу:
Код
gcc -o x x.c x.c: В функции «main»: x.c:19:29: предупреждение: в присваивании указатель преобразуется в целое без приведения типа [по умолчанию включена] x.c:28:3: предупреждение: format «%s» expects argument of type «char *», but argument 2 has type «char (*)[80]» [-Wformat] Код
./x Ошибка сегментирования (core dumped)
0
|
09.11.2012, 09:17 | |
Ответы с готовыми решениями:
6
Построчное чтение из файла Построчное чтение из файла Построчное чтение из файла Построчное чтение файла |
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
||||||
09.11.2012, 09:28 | 2 | |||||
этим ты переопределяешь размер массива на этапе исполнения, а тебе нужно скопировать строку
смотри в сторону memcpy http://ru.wikipedia.org/wiki/Memcpy да и нолик в конце строки не забудь поставить Добавлено через 1 минуту ты весь массив вывести пытаешься?
0
|
160 / 160 / 30
Регистрация: 09.11.2012
Сообщений: 1,008
|
|
09.11.2012, 09:45 [ТС] | 3 |
А более простыми методами (без memcpy) можно обойтись?
Как правильно скопировать строку из fgets в массив строк? Длина строки везде разная, но, предположим, не больше 80. Вывести пытаюсь непустые строки массива (те, которые, вроде как записались со счетчиком i)
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
|
09.11.2012, 09:56 | 4 |
не знаю проще или нет но строки можно заполнять sprintf
http://vsokovikov.narod.ru/New... printf.htm или используй тип string http://subscribe.ru/archive/co... 04423.html
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
||||||
09.11.2012, 11:12 | 6 | |||||
Сообщение было отмечено Памирыч как решение
Решение
mokojumbot, переменная stroka объявлена, как указатель на переменную типа char, мало того, ничем не инициализирована, то есть не указывает на какой-либо пригодный для размещения символов участок памяти (разве-что по чистой случайности). С другой стороны уже есть заранее выделенный массив строк, вот в них же сразу строки из файла и читайте:
0
|
160 / 160 / 30
Регистрация: 09.11.2012
Сообщений: 1,008
|
|||||||||||
09.11.2012, 11:18 [ТС] | 7 | ||||||||||
Благодарю откликнувшихся
Прочитал сразу в массив, спасибо гостю. Проблема была в незнании о существовании
0
|
09.11.2012, 11:18 | |
09.11.2012, 11:18 | |
Помогаю со студенческими работами здесь
7
Построчное чтение из файла Построчное чтение данных из файла Построчное чтение из файла сделать оптимальнее Построчное чтение неопределенного количества чисел из файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |