0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
|
||||||
1 | ||||||
Работа с текстовыми файлами03.12.2011, 21:16. Показов 3383. Ответов 23
Метки нет (Все метки)
Во входной файл подается текст вида: aaabcbbffff
В исходной файле получается: 3аbc2b4f простейшая компоновка получается.
0
|
03.12.2011, 21:16 | |
Ответы с готовыми решениями:
23
Работа с текстовыми файлами Работа с текстовыми файлами Работа с текстовыми файлами Работа с текстовыми файлами |
03.12.2011, 21:32 | 2 |
При использовании оператора ">>" для считывания данных их текстовых файлов происходит преобразование некоторых символов, например, пробельные символы пропускаются. Кроме того при использовании оператора ">>" для считывания строки ввод прекращается при обнаружении первого пробельного символа
1
|
0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
|
|
03.12.2011, 21:46 [ТС] | 3 |
спасибо) cin.get() все исправил)
0
|
Заблокирован
|
||||||
03.12.2011, 22:02 | 4 | |||||
Предлагаю получать символы из fstream посредством fstream::get
Вот код который парсит и пробелы вконце
aaabcbbffff <-стрелка чтобы было видно пробелы Вовод в reslt.txt аналогичен выводу на экран (см скрин)
1
|
0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
|
|
05.12.2011, 20:47 [ТС] | 5 |
а если файл пустой, то что делать? он просто в выходной файл выводит "М"
что это значит?
0
|
Заблокирован
|
||||||
05.12.2011, 21:14 | 6 | |||||
- т.к. файл пустой в нём содержится единственный символ EOF вот его то ifs.get(ch); впихивает в ch(это было первым подозрением), НО с EOF в этот цикл
не зайдём. Поэтому М обусловлена тем, что просто открыли ofs
я предлагаю ofs инициализировать только если исходный файл не пустой, сейчас подправлю Добавлено через 4 минуты xexew, вот так думаю будет защита от пустого файла с исходными данными
0
|
0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
|
|
05.12.2011, 21:35 [ТС] | 7 |
ввожу: aaabcbbffff
выводит: 3abc2b5f после изменения файла text.txt и проработки программы, она не создает новый файл result.txt, то есть если до этого я написал во входном файле любой набор символов, в выходной файл выведутся эти символы, но после того как я изменю файл текста(пустой допустим), и запущу опять программу, но результат будет от предыдущей задачи в моей программе идет самостоятельное создание файла результатов, если оного нет. и замена старого файла результатов
0
|
0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
|
||||||
05.12.2011, 21:53 [ТС] | 9 | |||||
вот мой вариант, не работает только тогда, когда у меня файл пустой, во всех остальных случаях нормально работает(по крайней мере я не смог найти ошибку). можно простым условием это решить, но как это сделать без доп условия?
если делать debug vs studio, то в 15 строке, когда файл пустой, присваивается некое значение М
0
|
Заблокирован
|
|
05.12.2011, 22:20 | 10 |
- ёпт єто же не мой код!
Понятное дело что тут ch будет писать даже если и не считаели её Вы считали кнец EOF y = EOF а потом не заходя в цикл здесь пишите out<<EOF; xexew, зачем было коверкать мой код???А я голову ломаю!!! Добавлено через 1 минуту xexew, внёс казалось бы какие то маааханькие изменения - а они перечеркнули мой алгоритм к чертям, зачем было менять мой алгоритм из 4-го поста??? Добавлено через 1 минуту - Это х*ень!Нужен цикл как у меня, нравиться это или нет
0
|
0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
|
|
05.12.2011, 22:29 [ТС] | 11 |
тест я делал по вашим прогам, задавал я вопросы обобщенные.
ввожу: aaabcbbffff выводит: 3abc2b5f вот это у вашей программы выдает, а не у моей Добавлено через 1 минуту и не перезаписывает то же у вас, поэтому мне было удобней своим алгоритмом пользоваться
0
|
Заблокирован
|
||||||
05.12.2011, 23:03 | 12 | |||||
- некорректно отрабатывало лишь на последней последовательности, это грабли с концом файла(объяснять долго, так что опущу). Теперь всё чётко работает и с пустым text.txt тоже!
- вот и вся модернизация
1
|
0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
|
|
05.12.2011, 23:08 [ТС] | 13 |
спасибо)
0
|
0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
|
|
08.12.2011, 21:40 [ТС] | 14 |
может кто подсказать алгоритм решения такой задачи: есть входной файл с текстом, в каждой строке поменять местами первое и последнее слово и переписать такую строку в исходный файл.
я вот думаю считывать сразу всю строку в массив, находить первое слово, затем последнее, поменять их местами и вывести в исходный файл, и так с каждой строкой. может есть более разумный и эффективный способ реализовать эту программу?
0
|
0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
|
|
08.12.2011, 23:18 [ТС] | 16 |
-=ЮрА=-, с++
0
|
0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
|
|||||||||||
13.12.2011, 00:10 [ТС] | 18 | ||||||||||
эта ошибка в этой части кода:
0
|
0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
|
|
15.12.2011, 23:29 [ТС] | 19 |
на правах апа, может кто глянет
0
|
Заблокирован
|
||||||
16.12.2011, 02:40 | 20 | |||||
- хорошо что топик подняли, я как-то забыл о нём извиняюсь за задержку
0
|
16.12.2011, 02:40 | |
16.12.2011, 02:40 | |
Помогаю со студенческими работами здесь
20
Работа с текстовыми файлами Работа с текстовыми файлами Работа с текстовыми файлами Работа с текстовыми файлами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |