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

Чтение данных из консоли - C++

Восстановить пароль Регистрация
 
Allivee
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 8
18.04.2014, 02:28     Чтение данных из консоли #1
Доброй ночи, пытаюсь написать программу, застопорился на одном этапе. Я командой ping google.com в консоль пытаюсь проверить наличие интернета, на самом простейшем уровне это выглядит как , (если элемент на данной позиции = параметру, то интернет есть, иначе нет), так вот, после команды system("ping...") У меня не получается вернуться и считать данные, вернее передвинуть курсор получилось, а вот считать нет. Вот сам код:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
{
    LPTSTR p;
    const int sz = 3;
    CONSOLE_SCREEN_BUFFER_INFO info;
    DWORD cbRead = 0;
    HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hCon, &info); 
    COORD position = { 26, 5 };
    
    system("ping -n 1 google.com");
    SetConsoleCursorPosition(hCon, position);
    ReadConsoleOutputCharacter(hCon, p, sz, position, &cbRead);;
    }
П.С. VS 2013, Сам в написанном мало что понимаю, инфу брал с этого же форума.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2014, 02:28     Чтение данных из консоли
Посмотрите здесь:

C++ Чтение пробела из консоли.
C++ Чтение символов с консоли
Чтение и запись в консоли C++
Меню в консоли - Ввод данных C++
Работа с базой данных из консоли C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.04.2014, 03:50     Чтение данных из консоли #2
Память под то, куда читаете, выделили?
Allivee
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 8
18.04.2014, 15:09  [ТС]     Чтение данных из консоли #3
Вроде нет, просто объявляю ту переменную, куда надо бы слить значения
C
1
char p[3]
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.04.2014, 15:22     Чтение данных из консоли #4
Цитата Сообщение от Allivee Посмотреть сообщение
Вроде нет, просто объявляю ту переменную, куда надо бы слить значения
C++
1
char p[3]
В выложенном коде ничего такого нет.
Цитата Сообщение от Allivee Посмотреть сообщение
а вот считать нет.
Откуда видите, что чтения нет?
Если читаете в строку, нужно место под '\0', который после чтения нужно добавить (я так понимаю, что ReadConsoleOutputCharacter() терминальный ноль не добавляет?), иначе вывод неправильный будет.
Allivee
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 8
18.04.2014, 15:28  [ТС]     Чтение данных из консоли #5
я потом вывожу массив р, он пустой
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.04.2014, 15:35     Чтение данных из консоли #6
Код в студию!
Allivee
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 8
18.04.2014, 15:43  [ТС]     Чтение данных из консоли #7
C
1
2
3
for (int i = 0; i < 3; i++){
            cout << p[i];
        }
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.04.2014, 15:44     Чтение данных из консоли #8
Весь код, который пробуете.
Allivee
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 8
18.04.2014, 15:56  [ТС]     Чтение данных из консоли #9
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
#include "stdafx.h"
#include <stdio.h>
#include <dos.h>
#include <time.h>
#include <iostream>
#include <Windows.h>
char p[3];
int main(){
    LPTSTR p;
    const int sz = 3;
    CONSOLE_SCREEN_BUFFER_INFO info;
    DWORD cbRead = 0;
    HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hCon, &info); 
    COORD position = { 26, 5 };
    system("ping -n 1 google.com");
    SetConsoleCursorPosition(hCon, position);
    ReadConsoleOutputCharacter(hCon, p, sz, position, &cbRead);
    COORD pos = { 1, 10 };
    SetConsoleCursorPosition(hCon, pos);
    for (int i = 0; i < 3; i++){
        cout << p[i];
    }
    return main();
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.04.2014, 16:08     Чтение данных из консоли #10
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
29
#include "stdafx.h"
#include <stdio.h>
#include <dos.h>
#include <time.h>
#include <iostream>
#include <Windows.h>
 
//char p[3];
 
int main(){
    LPTSTR p = new char[3];
    const int sz = 3;
    CONSOLE_SCREEN_BUFFER_INFO info;
    DWORD cbRead = 0;
    HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hCon, &info); 
    COORD position = { 26, 5 };
    system("ping -n 1 google.com");
    SetConsoleCursorPosition(hCon, position);
    ReadConsoleOutputCharacter(hCon, p, sz, position, &cbRead);
    COORD pos = { 1, 10 };
    SetConsoleCursorPosition(hCon, pos);
    for (int i = 0; i < 3; i++){
         std::cout << p[i];
    }
    //return main(); // это зачем?
    std::cin.get();
    return 0;
}
Allivee
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 8
18.04.2014, 16:11  [ТС]     Чтение данных из консоли #11
IntelliSense: значение типа "char *" нельзя использовать для инициализации сущности типа "LPTSTR"
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.04.2014, 16:29     Чтение данных из консоли #12
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Юникод, в ствойствах проекта, отключите.

Добавлено через 12 минут
И?...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2014, 16:39     Чтение данных из консоли
Еще ссылки по теме:

Чтение с клавиатуры ситемной клавиши F5 в консоли C++
C++ Считывание данных из консоли
C++ Ввод данных в консоли

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

Или воспользуйтесь поиском по форуму:
Allivee
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 8
18.04.2014, 16:39  [ТС]     Чтение данных из консоли #13
Всё получилось, спасибо!
Yandex
Объявления
18.04.2014, 16:39     Чтение данных из консоли
Ответ Создать тему
Опции темы

Текущее время: 20:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru