forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Пробелы (http://forum.boolean.name/showthread.php?t=12989)

den 22.07.2010 01:17

Пробелы
 
Немного ламерский вопрос:) :
Вот если написать код
Цитата:

string s;
cin>>s;
cout<<s;
и ввести "qwerty", то после нажатия на интер, получим "qwerty".
А если ввести "qwe rty" то получим "qwe", так как пробел в консоле работает как и интер (ввод).
А как сделать так, чтоб на ввыходе получилось "qwe rty", чтоб пробел не был командой ввод, а был просто символом?

impersonalis 22.07.2010 01:31

Ответ: Пробелы
 
Код:

#include<iomanip.h>
...
cin>>resetiosflags(ios::skipws);

писал попамяти

апд: вроде, при такой релаизаии Enter тоже игнорируется. Проверь.
Можно ещё побайтово через цикл читать (после сброса флага) и перкащать ввод при получени соответствующего кода.

.Squid 22.07.2010 01:36

Ответ: Пробелы
 
std::getline(std::cin, blablabla);

den 22.07.2010 01:42

Ответ: Пробелы
 
Ооо, заработало!
Способ .Squid мне больше подошёл!
Спасибо!

den 22.07.2010 12:51

Ответ: Пробелы
 
И ещё 2 вопроса. Задам сдесь, чтоб темы не плодить.
1) Дано чило n.
Как построить из него таблицу истиности.
Например n=3
Код:

000
001
010
011
100
101
110
111

Делал по всекому, но уж больно медлино получается...
Как по вашему это сделать?

2) Дана строка.
Вводим например "abc"
Как получить
Код:

abc
acb
bac
bca
cab
cba

???

impersonalis 22.07.2010 16:17

Ответ: Пробелы
 
Цитата:

Как построить из него таблицу истиности.
это не таблица истинности, а все варианты слова из N-бит.

http://forum.boolean.name/showpost.p...9&postcount=67
Тема не раз поднималась. Прогони цикл от 0 до 2^N, на каждой итерации переводи итератор в бинарку - вот те и коды.

den 22.07.2010 16:48

Ответ: Пробелы
 
Цитата:

Прогони цикл от 0 до 2^N, на каждой итерации переводи итератор в бинарку - вот те и коды.
Да я так и делал. А как перевети чило из 10 в 2 систему счисления (5->101). Я писал функцию, а может встроеное решение есть?
А второй вопрос?
Уже мозг кипит понять не мугу как сделать.
Пытался нерекурсивным перебором, ответ подходил для слов длиной 1-3 символа, для остальных нет. Сделал рекурсией-вобще нехера неработает.

impersonalis 22.07.2010 21:45

Ответ: Пробелы
 
#include<stdlib.h>

itoa
http://ru.wikipedia.org/wiki/Itoa_(Си)

den 22.07.2010 22:35

Ответ: Пробелы
 
Спасибо, полезная функция!
(хотя я писал почти точно такуюже, тако она работала почемуто раз в 20 медленней)))))
А как со вторым вопросом?:SOS:

impersonalis 22.07.2010 22:43

Ответ: Пробелы
 
смени алфавит с {'0','1'} на {'a','b'}.
Учитывая просттоту алфавитов, можно сделать тупы суммированием.
x`=x+d
где d=char('a')-char('0');
примерно так - раскрути идею)

den 22.07.2010 23:11

Ответ: Пробелы
 
Цитата:

Сообщение от impersonalis (Сообщение 155970)
смени алфавит с {'0','1'} на {'a','b'}.
Учитывая просттоту алфавитов, можно сделать тупы суммированием.
x`=x+d
где d=char('a')-char('0');
примерно так - раскрути идею)

и чё это?
причем перебор и ЕТО?
:pure_magic:
Цитата:

А как со вторым вопросом?:SOS:

impersonalis 22.07.2010 23:13

Ответ: Пробелы
 
ЭТО МЛИН ОН И БЫЛ!!!!11111

den 22.07.2010 23:38

Ответ: Пробелы
 
:-D :-D :-D
Может я быдло, ну причём сдвиг симола с цифры на букву, и перебор всех перестановок символов в слове?

impersonalis 22.07.2010 23:56

Ответ: Пробелы
 
млин - генерь слова в три бита дилной как было сказанов ыше
получай их текстовую запись в бин-коде
перводи его на новый алфавит

0->000->aaa
1->001->aab
2->010->aba
3->011->abb
4->100->baa
5->101->bab
...
7->111->bbb

Для ABC - юзай троичную с\с, генерь 3^strlen(ABC) степени состояний слова.
Есди задача о перстанвоках - то решение тоже, если о сочтеаниях без повторений - необходимо сперва сжать строку, выкинув повтроения.

den 23.07.2010 00:07

Ответ: Пробелы
 
Да только надо чтоб повторений небыло.
И там без систем счислений.
Нам тренер обеснял, а я забыл...(((
Там просто через for() и есчё были масивы с флагами. Кажется даже без рекурсии. И кода было так мало.
А потом показал второй вариант- с помощь какой то волшебной фунции с очень длинным названием, которая находится в какой то волшебной боблиотеке. Одна эта вункция решает всю эту проблему)))


Часовой пояс GMT +4, время: 10:17.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot