|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.10.2012, 21:18 | #1 |
Пользователь
Регистрация: 17.11.2010
Сообщений: 15
|
Чтение из файла, структуры
Добрый вечер. Тут такое дело: хочу заполнить структуру из файла. Но как это правильно сделать ни как не могу понять.
попробовал так Код:
|
09.10.2012, 21:32 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,792
|
А файл как выглядит?
I'm learning to live...
|
09.10.2012, 21:35 | #3 | |
Пользователь
Регистрация: 04.10.2012
Сообщений: 95
|
// ниуспел но пусть будет
А как они в фале записаны? Цитата:
Судя потому что первая цифра у тебя до пробела стоит значит она попала в students[i].inz, скорее всего в рез-те fscanf
Пишу на чистом С, плюсы спилил.
|
|
09.10.2012, 21:49 | #4 |
Пользователь
Регистрация: 17.11.2010
Сообщений: 15
|
файл txt, в нем все так:
Иванов И.К. 1 Петров Е.А. 0 и т.д. Ну я так примерно и понял, я попробовал вместо цифры вставить целое слово, но все равно, при выводе это слово так же повторяется( |
09.10.2012, 21:59 | #5 |
Пользователь
Регистрация: 04.10.2012
Сообщений: 95
|
Честно говоря не пользуюсь [f]scanf совсем и даже удивлен что так все выводит. разбирайся именно со структурой файла + чтением файла.
почитал мануал, у тебя все должно работать, хм...
Пишу на чистом С, плюсы спилил.
Последний раз редактировалось LynXzp; 09.10.2012 в 22:04. |
09.10.2012, 22:02 | #6 |
Пользователь
Регистрация: 17.11.2010
Сообщений: 15
|
Я в С++ новичок, так что пока не очень хорошо все понимаю )
Ладно, буду с файлами разбираться, спасибо А как кроме [f]scanf можно считывать построчно или по словам, не зная их длины? (На сколько я понимаю [f]gets требует длину слова, а как ее получить я не понял пока) Последний раз редактировалось -=M{a}LoY=-; 09.10.2012 в 22:06. |
09.10.2012, 22:06 | #7 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,792
|
Допустим, а как students описана?
I'm learning to live...
|
09.10.2012, 22:26 | #8 |
Пользователь
Регистрация: 17.11.2010
Сообщений: 15
|
Код:
|
09.10.2012, 23:14 | #9 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,792
|
Ясно. Вся проблема в том, что строки в Си оканчиваются символом с кодом 0.
Когда ты считываешь из файла и конвертируешь в строку, то inz у тебя получает инициалы, но после них нет символа с нулевым знаком. Поэтому в следующем цикле cout благополучно начинает выводить inz, но не находит в нем нуля, и продолжает вывод в том числе и того, что попадает за его пределы, пока не найдет терминатор. А что у нас следует цугом за inz? Правильно - pol. Таким образом cout не стесняясь выводит и его следом за inz в одном флаконе. Спросишь что бы я сделал? Хм... Допустим добавил бы размера полям, хотя бы еще на один символ, что бы считываемая строка не была впритык к массиву символов: Код:
I'm learning to live...
|
09.10.2012, 23:23 | #10 |
Пользователь
Регистрация: 17.11.2010
Сообщений: 15
|
Ооо .... спасибо огромное ... часа 2 мучился
Да мне это для лабораторной, так что лучше, хуже не имеет значения) Дальше думаю сумею что то придумать ) |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
чтение структуры из файла (язык С) | SamVImes | Помощь студентам | 5 | 20.08.2012 19:18 |
Чтение структуры из файла! | Olegzxc | Общие вопросы C/C++ | 1 | 01.12.2011 00:40 |
Чтение структуры из файла | atenon | Общие вопросы C/C++ | 11 | 22.10.2010 20:35 |
Запись структуры и чтение из файла | [MI_nor] | Общие вопросы C/C++ | 6 | 08.04.2009 15:52 |
Чтение структуры файла | SDK | Помощь студентам | 4 | 23.01.2008 19:30 |