Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
21 / 21 / 1
Регистрация: 05.01.2011
Сообщений: 173
1

командная строка

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

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

Добавлено через 19 минут
попробовал перенаправить вывод с консоли в файл
C++
1
system("ping google.com > c:\ping.txt");
, но кириллица выводиться кракозябрами =(
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2011, 23:28
Ответы с готовыми решениями:

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

Командная строка
Здравствуйте. Возможна тема, подобная этой уже создавалась, в любом случае не нашел и, если что...

Командная строка
Нужно выполнить задание, но как не пойму... Ввести n строк , найти самую короткую и самую длинную...

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

11
4857 / 3278 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
22.05.2011, 03:35 2
Цитата Сообщение от maks_IQ
так вот можно получить этот текст в переменную?
system() не предусматривает двухстороннего взаимодействия
в лине можно использовать popen(), а в винде, вероятно, создавать процесс

Добавлено через 10 минут
msdn. консоль
0
36 / 36 / 6
Регистрация: 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
Эксперт С++
516 / 420 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
22.05.2011, 10:18 4
Цитата Сообщение от maks_IQ Посмотреть сообщение
но кириллица выводиться кракозябрами =(
А почему нельзя переконвертировать или просто открыть файл в нужной кодировке, если это только для вас.
0
21 / 21 / 1
Регистрация: 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
Эксперт С++
516 / 420 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
22.05.2011, 11:32 6
У меня нормально открывается в DOS OEM (866).
1
36 / 36 / 6
Регистрация: 20.03.2011
Сообщений: 331
22.05.2011, 11:43 7
Открой с помощью akelpad
1
21 / 21 / 1
Регистрация: 05.01.2011
Сообщений: 173
22.05.2011, 11:47  [ТС] 8
gooseim, точняк, так открывается
С файлом разобрались, а вот что насчет записать весь этот текст в одну переменную?
и желательно сразу нормальной кириллицей, без кракозябр
0
36 / 36 / 6
Регистрация: 20.03.2011
Сообщений: 331
22.05.2011, 12:26 9
Не знаю занести как все в одну переменную, чтобы было все построчно.
Но можно каждую строчку взять за массив.
Массивы будут русскими символами выше я уже приводил пример!!!
0
21 / 21 / 1
Регистрация: 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
Эксперт С++
516 / 420 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
22.05.2011, 14:05 11
можно проще:
C++
1
2
istream file("c:\\1.txt");
file.getline(buf, 1000, '\0');
1
36 / 36 / 6
Регистрация: 20.03.2011
Сообщений: 331
22.05.2011, 14:42 12
Молодец тоже возьму себе на заметку
Если нужно именно какую нибудь строчку взять под переменную можешь моим способом воспользоваться!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2011, 14:42

Командная строка.
Сумма чисел. числа передаются в виде аргументов командной строки. #include &lt;iostream&gt; #include...

Командная строка в С++
Добрый день, можете подсказать как сделать так, чтобы имена входного и выходного файла программы...

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru