Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Ввод двумерного массива из файла |
Автор: Slash_from_Ryazan 25.4.2005, 22:22 |
Добрый вечер! Подскажите пожалуйста как реализовать в C ввод двумерного массива из текстового файла, чтобы все пробелы межу значениями float игнорировались и при этом автоматически происходил подсчет размерности массива. В паскале это очень легко реализовывалось через read, readln.... |
Автор: Ggamhat 26.4.2005, 04:25 |
В с++ это тоже просто сделать. Функция getc() считывает строку данных из файла. Потом ты эту строку разбираешь по элементам до конца, таким образом можешь подсчитать кол-во элементов в каждой строке и вообще кол-во строк. Затем создаёшь указатель на область памяти и отводишь память размером <кол-во строк>x<кол-во столбцов>. И работаешь с ними |
Автор: Slash_from_Ryazan 26.4.2005, 19:32 |
Спасибо. Идею понял - попробую реализовать. В принципе предложенный меня метод полностью устраивает. Но возник следующий вопрос: а нет ли в C функции, которая читает из текстового файла значение до пробела, а при достижении конца строки возвращает какое-либо фиксируемое значение? |
Автор: Ggamhat 27.4.2005, 03:28 |
Функция fscanf() читает до первого раб. символа(пробел, новая строка, таб и др.) |
Автор: jorkug 27.4.2005, 15:39 | ||
fscanf может читать строку в любом формате, например:
|
Автор: Ggamhat 28.4.2005, 03:09 |
Никто и не спорит. Я имею ввиду вариант, когда надо считывать по одному значению(неизвестно кол-во элементов в строке). |
Автор: Guest 28.4.2005, 22:06 | ||
1. Как выяснилось из мануала getc() читает из файла один!!! символ, целую строку читает fgets() 2. Может быть все-таки кто-нить подскажет как с помощью fscanf() поймать момент достижения конца строки. Прочитал по этому поводу весь help из Buildera, но так и не врубился как это сделать. 3. А не правильнее ли было написать?
|
Автор: jorkug 29.4.2005, 15:41 | ||||||
правильнее, я забыл их поставить. fscanf принимает указатели на переменные. |