|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.02.2010, 13:02 | #1 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
проблемы с командой printf "abcd abcd\nabcd" | ./a.out
ОС Linux, компилятор g++
Простенький пример Код:
пробовал очищать входной поток методом cin.clear() не выходит причем если запускать без printf , т.е ./a.out всё работает как надо в чем может быть проблема и как вообще работает такая связка printf "text" | ./a.out Этой командой препод проверяет работу программы, так что вопросы зачем так запускать пожалуйста не задавать=) Последний раз редактировалось NiCola999; 17.02.2010 в 20:12. |
17.02.2010, 18:10 | #2 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
никто не знает?
|
17.02.2010, 18:15 | #3 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
cin.clear() не очищает входной поток, а сбрасывает флаги.
http://cplusplus.com/reference/iostream/istream/ignore/ http://cplusplus.com/reference/iostream/istream/sync/ |
17.02.2010, 20:10 | #4 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
а почему программа срубается ?
printf "abcd" | ./a.out это конвейерная обработка команд в Linux строка abcd пропускается по каналу через исполняемый файл(a.out). Это примерно тоже самое что запустить a.out и ввести строку abcd А вот дальше непонятно. Почему cin не работает Последний раз редактировалось MaTBeu; 17.02.2010 в 21:59. |
17.02.2010, 23:11 | #5 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
Простой пример на Си
Код:
gcc test.c -o test echo hello | test.exe таже проблема что и в с++, кто может обьяснить в чем дело и как сделать чтобы работало? вывод такой: A: hello B: █☺С|<*" причем b не просит ввести Последний раз редактировалось NiCola999; 17.02.2010 в 23:15. |
17.02.2010, 23:19 | #6 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
чтоб работало:
Код:
|
17.02.2010, 23:30 | #7 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
ниче не изменилось, тоже самое выдает:
A: hello B: █☺С|<*" b не запрашивает |
18.02.2010, 00:00 | #8 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
А почему она должна что-то спрашивать? Она получила строку, поток закончился, считала мусор и всё.
|
18.02.2010, 00:36 | #9 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
хорошо, обьясните тогда как исправить эту программу чтобы она работала как надо при таком запуске
Linux: $printf "word" | ./a.out Windows: echo word | a.exe Код:
затем запрашивала еще одно слово и выводила на экран всё это в данном случае всё работает кроме ввода слова после считывания строки=) Последний раз редактировалось NiCola999; 18.02.2010 в 00:51. |
18.02.2010, 14:52 | #10 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
что никто не знает?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите настроить вывод "printf" | sp_Иришка | Общие вопросы C/C++ | 8 | 10.10.2009 21:56 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |
Удалить из строки все группы букв вида abcd | Григорийpnz | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 27.11.2008 12:48 |
Удалить из строки все группы вида abcd | Григорийpnz | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 18.11.2008 19:40 |