| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > построчное чтение и запись в массив |
| Автор: eXa 26.2.2008, 14:55 | ||
| spisok.txt ------------ test1 test2 test3 -------------
Печать: test3 test3 test3 Почему массив заполняется только последней строчкой из файла "spisok.txt" уже голому сломалO_o Как правильно читать построчно и записывать в массив? |
| Автор: opjox 26.2.2008, 17:20 | ||
Потому, что в str[i] вы записываете адрес buf, а считываете вы все время только в buf. Вот, возможно, что вы хотели получить:
P.S. не забывайте освобождать ресурсы. |
| Автор: eXa 27.2.2008, 00:53 | ||
| Да так читается, но криво_O Например txt фаил с таким содержанием ----------- 1233454 3554654654 565644 5675454 5645 546545345 5654543 456545 -----------
Вот что получается на выходе --------- 1233454 :8 355465465:9 4 :2 565644 :7 5675454 :8 5645 :5 546545345:9 :1 5654543 :8 456545:6 --------- fscanf решила проблему |
| Автор: bsa 27.2.2008, 11:53 |
| а как ты хотел прочитать строку из 10 символов в массив из 10 символов, у которого в конце еще завершающий ноль ставится (фактически размер массива - 9 символов)? |
| Автор: eXa 29.2.2008, 17:52 |
| Максимальное число символов в строчке 9, 10 это как раз для нуля. Только причём тут это? fscanf читает только до пробела в строчки=\ что делать? как читать с пробелами? |
| Автор: opjox 29.2.2008, 18:26 |
| Да, правда, в строке максимум у вас не 10, а все 11 символов: 3554654654 – тут десять + еще один на символ перехода на новую строку. Не забываем, что в программе нужен еще один для нуль-символа. |
| Автор: eXa 1.3.2008, 17:08 |
| ступил =\ |