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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
maks_IQ
21 / 21 / 0
Регистрация: 05.01.2011
Сообщений: 173
#1

командная строка - C++

21.05.2011, 23:28. Просмотров 1282. Ответов 11
Метки нет (Все метки)

вот такой вопрос: можно ли получить в переменную то, что выводится в командной строке?
например, если я выполню
C++
1
system("skdfbgklsjbgflbj");
то появится сообщение:
"skdfbgklsjbgflbj" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
.
так вот можно получить этот текст в переменную? если да то как?

Добавлено через 19 минут
попробовал перенаправить вывод с консоли в файл
C++
1
system("ping google.com > c:\ping.txt");
, но кириллица выводиться кракозябрами =(
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2011, 23:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос командная строка (C++):

Командная строка - C++
В командной строке задается признак фигуры, объем которой необходимо вычислить: s – шар (аргумент – радиус); k – куб (аргумент...

Командная строка. - C++
Сумма чисел. числа передаются в виде аргументов командной строки. #include <iostream> #include <locale> using namespace std; ...

C++ и командная строка - C++
Как с помощью с++ открыть ком. строку и ввести команды?

Командная строка - C++
Я скомпилировал исходный код в exe, а когда запускаю этот exe командная строка сразу закрывается (я даже не успеваю посмотреть что там...

Командная строка - C++
Почему при запуске скомпилированой программы, вместо русских букв у меня какая то ересь?

Командная строка - C++
Допустим мне нужно информацию команды system("wmic diskdrive get model") вывести в memo. c++ Как это сделать?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
22.05.2011, 03:35 #2
Цитата Сообщение от maks_IQ
так вот можно получить этот текст в переменную?
system() не предусматривает двухстороннего взаимодействия
в лине можно использовать popen(), а в винде, вероятно, создавать процесс

Добавлено через 10 минут
msdn. консоль
0
nikitapel
36 / 36 / 4
Регистрация: 20.03.2011
Сообщений: 331
22.05.2011, 10:13 #3
Можно .
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <fstream>
#include <iostream>
#include <string>
#pragma argsused
int i = 1;
std::string s;
int main()
{
system("ping google.com > c:\\ping.txt");
 
std::ifstream ifs("c:\\ping.txt");  //Теперь открываем
if(!ifs.is_open()){std::cerr<<"File not found"; return 1;} //если файл не сществует
 
        while(getline(ifs,s))       {  // цикл сканирует поочереди  каждую строчку
      std::cout<<i<<". "<<s<<endl;
        i=i+1;
 
 
        }
        i=i-1;
                ifs.close(); //Закрываем файл
                std::cout<<"Cтрочек в этом txt "<<i;
                system("pause >> void");
}
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
22.05.2011, 10:18 #4
Цитата Сообщение от maks_IQ Посмотреть сообщение
но кириллица выводиться кракозябрами =(
А почему нельзя переконвертировать или просто открыть файл в нужной кодировке, если это только для вас.
0
maks_IQ
21 / 21 / 0
Регистрация: 05.01.2011
Сообщений: 173
22.05.2011, 11:29  [ТС] #5
nikitapel,

ЋЎ¬Ґ* Ї*ЄҐв*¬Ё б google.com [74.125.39.104] Ї® 32 Ў*©в:



ЋвўҐв ®в 74.125.39.104: зЁб«® Ў*©в=32 ўаҐ¬п=74¬б TTL=53

ЋвўҐв ®в 74.125.39.104: зЁб«® Ў*©в=32 ўаҐ¬п=74¬б TTL=53

ЋвўҐв ®в 74.125.39.104: зЁб«® Ў*©в=32 ўаҐ¬п=74¬б TTL=53

ЋвўҐв ®в 74.125.39.104: зЁб«® Ў*©в=32 ўаҐ¬п=74¬б TTL=53



‘в*вЁбвЁЄ* Ping ¤«п 74.125.39.104:

Џ*ЄҐв®ў: ®вЇа*ў«Ґ*® = 4, Ї®«гзҐ*® = 4, Ї®вҐап*® = 0 (0% Ї®вҐам),

ЏаЁЎ«Ё§ЁвҐ«м*®Ґ ўаҐ¬п ЇаЁҐ¬*-ЇҐаҐ¤*зЁ ў ¬б:

ЊЁ*Ё¬*«м*®Ґ = 74¬бҐЄ, Њ*ЄбЁ¬*«м*®Ґ = 74 ¬бҐЄ, ‘।*ҐҐ = 74 ¬бҐЄ
вот что выводиться в файл.
как пределать это в нормальный, читаемый вид?

Добавлено через 40 секунд
gooseim, что именно нужно сделать? я через notepad ++ пробовал открывать, менял разные кодировки, но результат тот же
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
22.05.2011, 11:32 #6
У меня нормально открывается в DOS OEM (866).
1
nikitapel
36 / 36 / 4
Регистрация: 20.03.2011
Сообщений: 331
22.05.2011, 11:43 #7
Открой с помощью akelpad
1
maks_IQ
21 / 21 / 0
Регистрация: 05.01.2011
Сообщений: 173
22.05.2011, 11:47  [ТС] #8
gooseim, точняк, так открывается
С файлом разобрались, а вот что насчет записать весь этот текст в одну переменную?
и желательно сразу нормальной кириллицей, без кракозябр
0
nikitapel
36 / 36 / 4
Регистрация: 20.03.2011
Сообщений: 331
22.05.2011, 12:26 #9
Не знаю занести как все в одну переменную, чтобы было все построчно.
Но можно каждую строчку взять за массив.
Массивы будут русскими символами выше я уже приводил пример!!!
0
maks_IQ
21 / 21 / 0
Регистрация: 05.01.2011
Сообщений: 173
22.05.2011, 12:31  [ТС] #10
nikitapel, решил проблему
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "stdafx.h"
#include <conio.h>
#include <fstream>
#include <iostream>
#include <string>
 
using namespace std;
int main()
{
    setlocale(LC_ALL,"rus");
    FILE *fin;
    size_t k;
    char buf[1000];
 
    fin = fopen("c:\\1.txt","r");
 
    while(!feof(fin))
     {
      k = fread(buf,sizeof(char),1000,fin);
      buf[k]=0;  
     }
    
      printf("%s",buf);
    fclose(fin);
 
    getch();
    return 0;
}
1
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
22.05.2011, 14:05 #11
можно проще:
C++
1
2
istream file("c:\\1.txt");
file.getline(buf, 1000, '\0');
1
nikitapel
36 / 36 / 4
Регистрация: 20.03.2011
Сообщений: 331
22.05.2011, 14:42 #12
Молодец тоже возьму себе на заметку
Если нужно именно какую нибудь строчку взять под переменную можешь моим способом воспользоваться!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2011, 14:42
Привет! Вот еще темы с ответами:

Командная строка в С++ - C++
В командной строке задается признак фигуры, объем которой необходимо вычислить: s – шар (аргумент – радиус); k – куб (аргумент –...

командная строка - C++
помогите написать программку на СИ, буду мегаблагодарна :) В параметрах командной строки передаются строковые значения. Вывести все...

Командная строка - C++
Помогите пожалуйста с программой. Объясните, как работать с командной строкой через с++? Задание таково: - В командной строке задаются...

Командная строка - C++
как сделать вывод сообщений на русском языке(англ.) в командной строке? Почему ошибка в объявлении вещественного типа и как запустить прогу...


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

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

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