Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
uhx
60 / 60 / 6
Регистрация: 11.07.2013
Сообщений: 304
#1

Эксперименты с system("pause >> void"); - C++

13.03.2014, 16:11. Просмотров 948. Ответов 7
Метки нет (Все метки)

Вооообщем
Сегодня я узнал одну страшную вещь:
при вводе system("pause>>void"); эта надпись (от паузы) сохраняется в файле void!
Правда с кривой кодировкой, но да ничего. Решил я поэксперементировать...
.."ping cyberforum.ru>>log.txt"); Вау! Все записалось! (Опять же, кривая кодировка)
И вот вопрос вообщем.
2 варианта:

1) Можно ли сделать нормальную кодировку ?! (SetConsoleOutputCP(1251) делает ее нормальной только для "отчета" по пауззе, остальное кривое)
2) Можно ли этот самый "отчет" записать в какую-нибудь переменную?
Я думаю второе трудновыполнимо, если это вообще возможно сделать, поэтому я склоняюсь к первому варианту. Думаю можно как-то с нормальной кодировкой поместить все в файл (а оттуда я уже буду считывать)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2014, 16:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Эксперименты с system("pause >> void"); (C++):

Почему не работает "system("pause")"? - C++
Почему не останавливается программа в консоли в конце? #include<iostream> #include<locale> #include<string> #include<time.h> ...

Почемо выдает ошибку в строке system("pause") - C++
#include <stdio.h> #define MAX 100 #define LEN 255 char text; /* ïðîñòåéøèé òåêñòîâûé ðåäàêòîð */ int main(void) { ...

Выводит ошибку на system ("pause"); в чем дело? - C++
#include <iostream> using namespace std; int main() { int n, o; cout << " Ya sobirayus syest "; cin >> n; o = n...

что делать если программа не включается при функции system("pause");? - C++
тупо не включается, а при его удалении прога сама закрывается что наверное вы сами знаете. вот сама программа #include <iostream> ...

Сообщение об ошибке в строке system("pause"); - C++
Заданы матрицы A,B Вычислить A+B+A

зачем нужна system("pause >nul"); - C++
У меня в программе эта строка как раз и не работает! Пробовал подключать все необходимые библиотеки, 0 реакции, компилятор Dev C++. Во 1-х...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.03.2014, 16:24 #2
Цитата Сообщение от uhx Посмотреть сообщение
при вводе system("pause>>void"); эта надпись (от паузы) сохраняется в файле void!
ф-я system тут не причем, это заслуга интерпретатор командной строки.
foo > filename - сбрасывает весь вывод stdout в файл с названием filename, если такого файла нет - то он создается, если есть - то перезаписывается
foo >> filename - то же самое, только если файл существует то он не пересоздается, а дополняется
foo < filename втягивает весь ввод из файла вместо stdin

http://technet.microsoft.com/en-us/l.../bb490982.aspx

Цитата Сообщение от uhx Посмотреть сообщение
1) Можно ли сделать нормальную кодировку ?! (SetConsoleOutputCP(1251) делает ее нормальной только для "отчета" по пауззе, остальное кривое)
навряд ли получится, но можно пошаманить с командой chcp

Цитата Сообщение от uhx Посмотреть сообщение
2) Можно ли этот самый "отчет" записать в какую-нибудь переменную?
чем файл не переменная?
1
uhx
60 / 60 / 6
Регистрация: 11.07.2013
Сообщений: 304
13.03.2014, 16:30  [ТС] #3
Цитата Сообщение от Jupiter Посмотреть сообщение
чем файл не переменная?
Потому что кодировка кривая)) Если первый вариант не подходит, то у меня в голову приходит второй... который реализовать труднее (опять таки, если вообще возможно)
0
Jupiter
13.03.2014, 16:32
  #4

Не по теме:

Цитата Сообщение от uhx Посмотреть сообщение
Потому что кодировка кривая
это винда ваша кривая

0
Байт
Эксперт C
16062 / 10331 / 1540
Регистрация: 24.12.2010
Сообщений: 19,471
13.03.2014, 16:34 #5
Цитата Сообщение от uhx Посмотреть сообщение
Можно ли этот самый "отчет" записать в какую-нибудь переменную?
В Qt есть такой механизм, реализуемый классом QProcess, который позволяет запускать программу как бы из командной строки и перехватывает весь ее stdout (и stderr за одно). Перехватить, это и значит записать в переменную (строку, как правило).
Наверное, подобные механизмы есть и в каких-то других библиотеках.
1
Croessmah
13.03.2014, 16:35
  #6

Не по теме:

Цитата Сообщение от Jupiter Посмотреть сообщение
это винда ваша кривая
она мелкософтовская

0
Байт
Эксперт C
16062 / 10331 / 1540
Регистрация: 24.12.2010
Сообщений: 19,471
13.03.2014, 16:36 #7
А насчет кодировки... Получил переменную - делай с ней, что хошь.
И еще есть такая программка iconv. Перекодирует что угодно и куда угодно.
1
uhx
60 / 60 / 6
Регистрация: 11.07.2013
Сообщений: 304
13.03.2014, 17:38  [ТС] #8
Эксперименты с system("pause >> void");

:\
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2014, 17:38
Привет! Вот еще темы с ответами:

Аналог функции system("pause"); - C++
Использую функцию system(&quot;pause&quot;); для отображения консоли в конце программы, подскажите пожалуйста что нибудь кроссплатформенно и по...

Аналог system("pause") - C++
Какой аналог есть system(&quot;pause&quot;), но без предложения &quot;Для продолжения нажмите любую клавишу...&quot;. Что бы поле было пустым для нажатия...

system("pause") - C++
Подскажите пожалуйста, можно ли заменить сообщение &quot;Для продолжения нажмите любую клавишу&quot; при применении команды...

не получается передать массив из "void Vvod" в "void CalculatingEstimates" - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void CalculatingEstimates(int Pp,Stydent mas); void Vvod(); struct...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.03.2014, 17:38
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru