Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 181
1

Считывание ASCII кодов и действия по ним

18.09.2019, 21:47. Просмотров 944. Ответов 11
Метки нет (Все метки)

Отобразить на экране двоичные коды вводимых с клавиатуры символов. Использовать символы s, f, k, w, e и реализовать по этим кодам запуск программы Проводник, указание пути к папке, создание текстового файла, удаление файла, закрытие текущего окна Проводника соответственно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2019, 21:47
Ответы с готовыми решениями:

Считывание из файла массив целых чисел и действия над ним
помогите написать программу. Из файла (имя файла вводится с клавиатуры) считывается массив целых...

Вопрос по ASCII кодов
Я сделал ввод одномерного символьного массива, сделал сортировку, но в выводе мне вывело не...

Использование ASCII кодов
Подскажите как пользоваться таблицей ASCII кодов...

Вывести таблицу ASCII кодов
Вывести таблицу ASCII кодов в двенадцать столбцов до появления строчной буквы й русского алфавита и...

11
2719 / 1669 / 347
Регистрация: 09.09.2017
Сообщений: 6,931
19.09.2019, 12:36 2
Ошиблись разделом. Winapi тут: https://www.cyberforum.ru/win-api/
0
Модератор
Эксперт С++
10150 / 8499 / 5165
Регистрация: 18.12.2011
Сообщений: 22,738
19.09.2019, 13:03 3
COKPOWEHEU, что-то Вы не совсем по существу.
WinApi понадобится только для закрытия окна.
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
30
31
32
33
34
35
36
37
38
39
40
41
42
char path[100]={0},file[100];
while(true)
{
    int c=getch();
    cout<<(char)c<<' '<<hex<<(int)c<<endl;
    switch(c)
    {
       case 's':
         system("explorer");
         break;
       case 'f':
         strcpy(path,"D:\\temp\\NewFolderName");
         break;
       case 'k':
        {
           strcpy(file,path);
           strcat(file,"NewFile.txt");
           ofstream ff(file);
           if(ff)
           {
                ff<<"Hello!\n";
                ff.close();
           }
        }
        break;
       case 'w':
           strcpy(file,path);
           strcat(file,"NewFile.txt");
           remove(file);
           break;
       case 'e':
          //  вот тут надо использовать WinApi для закрытия окна;
          // не совсем уверен, но примерно так:
         {
         hWnd = FindWindow(NULL, _T("explorer"));
             if(IsWindow(hWnd)) 
                 SendMessage(hWnd,WM_SYSCOMMAND,SC_CLOSE,0);
         }
// а может можно и так
          system("taskkill /f /im explorer.exe");
   }
}
0
2719 / 1669 / 347
Регистрация: 09.09.2017
Сообщений: 6,931
19.09.2019, 16:00 4
Цитата Сообщение от zss Посмотреть сообщение
COKPOWEHEU, что-то Вы не совсем по существу.
WinApi понадобится только для закрытия окна.
Тут вся задача завязана на windows, а не на С++: работа с проводником, поиск окон, отслеживание нажатий (не факт, что через getchar(), возможно через _kbhit а то и оконные события).
Цитата Сообщение от Kesha777 Посмотреть сообщение
закрытие текущего окна Проводника
Вот это вообще непонятно. Закрыть первого попавшегося проводника или того, который был открыть приложением? Можно ли открывать нескольких?
Я бы предположил, что именно открытых из программы и в любом количестве, но тогда логичнее было бы при открытии сохранять pid (или handle, не помню как оно в windows называется).
zss, под 'f' (указание пути к папке), вероятно, имелся в виду ввод пользователя
Цитата Сообщение от zss Посмотреть сообщение
hWnd = FindWindow(NULL, _T("explorer"));
Это точно сработает? Мне казалось, оно ищет по заголовку окна, а там путь обычно. То есть вообще заранее неизвестный текст.
0
Модератор
Эксперт С++
10150 / 8499 / 5165
Регистрация: 18.12.2011
Сообщений: 22,738
19.09.2019, 20:17 5
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Это точно сработает?
Не уверен. Поиск идет действительно по заголовку окна, а какой он у проводника я не знаю.
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 181
19.09.2019, 20:53  [ТС] 6
Цитата Сообщение от zss Посмотреть сообщение
system("taskkill /f /im explorer.exe");
а это сработает?
0
Модератор
Эксперт С++
10150 / 8499 / 5165
Регистрация: 18.12.2011
Сообщений: 22,738
19.09.2019, 21:40 7
Цитата Сообщение от Kesha777 Посмотреть сообщение
а это сработает?
Сработает, но для explorer.exe есть нюанс: рабочий стол - это тоже explorer.exe.
Так что, может закрыться он, а не тот, который Вы запустили.
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 181
19.09.2019, 21:54  [ТС] 8
zss, можете скинуть полностью код, т.е какие библиотеки подключать и т.п. А то плохо разбираюсь.
0
Модератор
Эксперт С++
10150 / 8499 / 5165
Регистрация: 18.12.2011
Сообщений: 22,738
20.09.2019, 08:57 9
Цитата Сообщение от Kesha777 Посмотреть сообщение
какие библиотеки подключать
Есть такая клавиша помощи F1.
Ставите текстовый курсор на незнакомую функцию и жмете ее.
В открывшемся окне ищете раздел requirements, там и написано, какой заголовочный файл нужен.
0
2719 / 1669 / 347
Регистрация: 09.09.2017
Сообщений: 6,931
20.09.2019, 10:19 10
Цитата Сообщение от Kesha777 Посмотреть сообщение
zss, можете скинуть полностью код, т.е какие библиотеки подключать и т.п. А то плохо разбираюсь.
Так вам, наверное, и задание такое дали специально чтобы вы разобрались.
Еще было бы неплохо ответить на мои уточняющие вопросы, хоть я и задал их скорее zss'у:
1. Какой тип вашего приложения: консольный или оконный? От этого зависит, надо ли создавать собственное окно, зависит способ ввода-вывода и т.п.
2. Можно ли запускать несколько "проводников"?
3. Каков алгоритм закрытия "проводников": закрывать только открытые самой программой или вообще любые? Важен ли порядок?
4. Ввод символа 'f' означает указание пользователем пути к папке, в которой будет создан файл или просто вывод текущей?
5. При создании и удалении текстового файла ('k', 'w') откуда брать его имя?
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 181
20.09.2019, 22:50  [ТС] 11
COKPOWEHEU,
1. Консольный
2 и 3. Закрыть проводник тот который был открыт прогой
4. Честно говоря сам не понял этого пункта, но похоже что путь для создания файла.
5. Без разницы как реализуете, хоть ввод пользователем, хоть уже заданный.
0
2719 / 1669 / 347
Регистрация: 09.09.2017
Сообщений: 6,931
21.09.2019, 01:37 12
Цитата Сообщение от Kesha777 Посмотреть сообщение
2 и 3. Закрыть проводник тот который был открыт прогой
В таком случае посмотрите на ShellExecuteEx или CreateProcess или подобные. Если не ошибаюсь, они умеют возвращать указатель на созданный процесс, по которому его потом можно будет убить.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.09.2019, 01:37

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Сумма кодов ASCII символов в файле
Нужно посчитать сумму кодов ASCII символов в файле. При наличии в файле кириллицы, выдаются...

Вывести таблицу символов кодов ASCII
Вывести таблицу символов кодов ASCII таким образом, чтобы ряды обозначали кол-во десятков, а...

Сформировать таблицу ASCII-кодов символов с номерами от a до b
Ввести натуральные числа a и b размером в один байт Сформировать таблицу ASCII-кодов символов с...

Зашифровать текст, используя таблицу ASCII-кодов
Помогите зашифровать данный текст, используя таблицу ASCII-кодов: Компилятор. Добавлено через 7...


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

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

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