|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.01.2020, 03:06 | #11 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
Используйте свой код из #4 и не бойтесь ничего. Код абсолютно грамотный! Если файл текстовый и состоит из "колонок" разделенных пробелами.
|
26.01.2020, 07:53 | #12 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,063
|
Ввод данных выполняется через буфер - специальную область оперативной памяти. Фактически данные сначала заносятся в буфер, а затем считываются оттуда процедурами ввода. Занесение в буфер выполняется по нажатию клавиши Enter вместе с ее кодом (#13#10). Процедура read, в отличие от readln, не очищает буфер, поэтому следующий после нее ввод будет выполняться с того места, на котором закончился предыдущий, то есть начиная с символа конца строки:
Код:
© Паскаль. Программирование на языке высокого уровня: Учебник для вузов. Павловская Т. А. 2007
I am not a wizard, I am just learning.
Последний раз редактировалось Desc; 26.01.2020 в 08:36. |
26.01.2020, 12:11 | #13 | |
Форумчанин
Регистрация: 13.09.2019
Сообщений: 119
|
Цитата:
Код:
Если написать полностью аналогичный код на С++, там при считывании тоже возникнет подобный эффект, но уже при наличии хотя бы одной пустой строки. Правда, в переменные попадут не нули, а продублируются числа из предыдущей "значащей" строки. Последний раз редактировалось archerix; 26.01.2020 в 12:17. |
|
26.01.2020, 14:03 | #14 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
А в чем собственно проблема?
|
26.01.2020, 17:33 | #15 |
Форумчанин
Регистрация: 13.09.2019
Сообщений: 119
|
Ну как? В том, что при считывании таким образом, если в конце файла присутствуют пустые строки, может появиться "паразитная" строка данных. В Дельфи она содержит нули, в С++ значения из последней значащей строки. Проверять потом данные - а вдруг там действительно такие числа должны были быть?
Возможно, перед считыванием в сами переменные можно поставить какую-то проверку на пустую строку? Можно предварительно прокрутить один раз цикл, подсчитав непустые строки, работает. Но это как-то длинно, два цикла делать, хотелось бы за один раз. Можно ли, не углубляясь особо в парсинг, аналогично файлу "считать" значения переменных из строки? То есть считывать целой строкой, проверять, не пустая ли она, а потом раскидывать по переменным. Последний раз редактировалось archerix; 26.01.2020 в 19:16. |
27.01.2020, 02:27 | #16 | |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
Цитата:
Если же речь идет о сферическом коне в вакууме, то допустимы любые решения. Можно. |
|
27.01.2020, 02:30 | #17 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
|
27.01.2020, 02:47 | #18 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
Это из-за того, что С не всегда следует грамотному формированию "окончания" строки, а вы не совсем правильно понимаете что такое "пустая" строка.
|
27.01.2020, 04:00 | #19 | ||
Форумчанин
Регистрация: 13.09.2019
Сообщений: 119
|
Цитата:
Цитата:
|
||
27.01.2020, 09:30 | #20 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,834
|
а попадётся вам файл, которые пересылали много раз, изменяли содержимое, сохраняли и пересохраняли. и в нём будут по ошибке записаны не нули, а скажем буквы О. он тоже распознает эти строки как нули? или вообще символ с кодом 0.
поэтому, надо в код по считыванию, где функции readln() и read(), включить проверки на всякие неудобные и неугодные символы....
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как считать файл без расширения. С++ | Nikzz | Помощь студентам | 3 | 24.10.2017 20:23 |
Экспорт всех колонок из ListView в .csv файл (Microsoft Excel) | FleXik | Общие вопросы Delphi | 18 | 12.07.2015 20:10 |
Как побайтово считать файл GIF? | Bubel | Visual C++ | 1 | 29.10.2011 02:23 |
Как побайтово считать файл GIF? | Bubel | Visual C++ | 1 | 27.10.2011 11:44 |
Считать wav-файл С++ | Skido | Помощь студентам | 4 | 30.01.2009 03:06 |