3 / 3 / 1
Регистрация: 04.11.2013
Сообщений: 285
|
||||||
1 | ||||||
Строковые потоки. Переставить местами два соседних слова20.04.2015, 19:00. Просмотров 1946. Ответов 17
Метки нет Все метки)
(Сама программа
Программа меняет местами 2 соседних слова. Как её переделать под строковые потоки. Может я плохо искал информацию, но так внятного ничего и не нашёл по данной тематике. Заранее спасибо
0
|
|
20.04.2015, 19:00 | |
Поменять каждые два соседних слова в строке местами Строки. В тексте поменять местами каждые два соседних слова
|
|
6916 / 5981 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
|
|
20.04.2015, 19:24 | 2 |
Что за строковые потоки?
1
|
6916 / 5981 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
|
|
20.04.2015, 19:29 | 5 |
Я просто не понял, что он имеет в виду.
1
|
lss
|
20.04.2015, 19:30
#6
|
0
|
3 / 3 / 1
Регистрация: 04.11.2013
Сообщений: 285
|
|
20.04.2015, 21:19 [ТС] | 7 |
Да, именно эти потоки.
0
|
6916 / 5981 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
|
|
20.04.2015, 22:01 | 8 |
Вместо файла? Или для разделения?
1
|
2702 / 1872 / 553
Регистрация: 05.06.2014
Сообщений: 5,423
|
|
21.04.2015, 07:19 | 9 |
Внятно ответив нафига оно там надо. Алсо, использовать while(ifs1>>s[count++]); (именно с точкой с запятой вместо {}).
1
|
3 / 3 / 1
Регистрация: 04.11.2013
Сообщений: 285
|
|
21.04.2015, 16:09 [ТС] | 10 |
nmcf, честно говоря, я сам не понимаю. Нам выдали задание и учебник где есть теория (очень мало, но прикреплю).
Задание: Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова.
0
|
935 / 863 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
|
||||||
21.04.2015, 18:18 | 11 | |||||
![]() Решение
1
|
3 / 3 / 1
Регистрация: 04.11.2013
Сообщений: 285
|
|
21.04.2015, 20:32 [ТС] | 12 |
lss, спасибо! Все работает.
Хотелось бы разобраться в программе, не могли бы вы пояснить несколько строк 14) В строку s что-то заносится, как я понял, но что делать функция rdbuf() ? 16/17) Немного не ясно, как я правильно понял, это объявление переменных word1 и word2 19-24) Ну тут совсем не ясно, можете подробно объяснить?
0
|
935 / 863 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
|
|
21.04.2015, 20:50 | 13 |
В строковый поток s (для чтения и записи) записывается (похоже на запись в файл) содержимое буфера файла, т.е. весь файл.
Два объекта string, куда будyт последовательно читаться по два слова из строкового потока s. Цикл чтения, по два слова, из строкового потока (похоже на цикл чтения из файла), и вывод двух считанных слов в обратном порядке.
1
|
3 / 3 / 1
Регистрация: 04.11.2013
Сообщений: 285
|
|
21.04.2015, 20:56 [ТС] | 14 |
lss, т.е. в 19 строке s >> word1 переносится первое слово, а потом в 21 строке уже второе, как оно второе слово берет, игнорируя первое.
Ну и в 28 строке, я так понял, ошибка если файла нет, а сделать проверку на пустоту файла, мне кажется еще в 11 строке, но как именно - не знаю. Подскажите.
0
|
935 / 863 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
|
||||||
21.04.2015, 21:23 | 15 | |||||
Не понял вопроса. Что значит игнорируя? Как чтения из файла идёт? Последовательно читаются символы. Так и здесь. Оператор >> читает до первого пробельного символа. Читается первое слово, второе и т.д., пока всё из потока не прочитается.
Добавлено через 7 минут Так можно:
1
|
3 / 3 / 1
Регистрация: 04.11.2013
Сообщений: 285
|
||||||
21.04.2015, 21:23 [ТС] | 16 | |||||
lss,
0
|
935 / 863 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
|
|
21.04.2015, 21:46 | 17 |
В общем, да. Метка не ставится, просто у курсора чтения есть позиция. Открыли файл для чтения - курсор в начале файла (на первом символе). Началось чтение с помощью оператора >>, куросор начал перемещаться по символам до первого пробела (начальные пробельные символы пропустятся). Дошёл до пробела - остановился. Если опять начнётся чтенияе, то будет дальше двигаться. Тоже самое и при чтении из строкового потока. Позицию курсора, в потоке для чтения, можно узнать через метод tellg().
1
|
3 / 3 / 1
Регистрация: 04.11.2013
Сообщений: 285
|
|
21.04.2015, 21:53 [ТС] | 18 |
lss, Спасибо за помощь! Очень помогли
0
|
21.04.2015, 21:53 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова Написать программу,которая считывает текст из файла и выводит его на экран,меняя местами каждые два соседних слова. Обменять местами два соседних элемента списка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |