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

Перемещение по файлу клавишами - C++

Восстановить пароль Регистрация
 
Pacifique
0 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 4
02.06.2012, 18:13     Перемещение по файлу клавишами #1
Здравствуйте.
Писал программу, позволяющую просматривать текстовый файл.
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
main()
{
char f_name[40];                                         
FILE *in;                                                 
char st [80];                                      
int n=0;                                            
char key;                                                 
 
printf ("Введите полное имя файла\n");
scanf("%s",&f_name);
 
 
   if ((in = fopen(f_name, "rt")) == NULL)  {
                                             printf ("Ошибка при обращении к файлу %s\n", f_name);  
                                             getch(); exit(1);
                                            }
 
 
system("CLS");
while(!feof (in))    {
                      fgets (st, 80, in);
                      printf("%s", st); 
                     }
 
fclose(in);                                              
system("PAUSE");
}
Каким образом можно сделать так, чтобы с помощью клавиш можно было перемещаться по тексту?

Добавлено через 47 секунд
Ап, пожалуйста, помогите!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2012, 18:13     Перемещение по файлу клавишами
Посмотрите здесь:

Путь к файлу C++
C++ Перемещение по текстовому файлу.
Перемещение по бинарному файлу C++
Путь к файлу C++
C++ Работа с клавишами стрелка и т.д
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
02.06.2012, 18:44     Перемещение по файлу клавишами #2
Тебя интересует как обрабатывать нажатия клавиш, или как работать с консолью, или алгоритм, или код целиком?
Pacifique
0 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 4
03.06.2012, 10:56  [ТС]     Перемещение по файлу клавишами #3
Видимо, обработка нажатий клавиш, если под этим понимается перемещение каретки по тексту при нажатии клавиши.
Лучше, конечно, в виде кода, если нетрудно.

Да, я заранее извиняюсь за свою безграмотность, начал совсем недавно язык учить.
-=ЮрА=-
Заблокирован
Автор FAQ
03.06.2012, 12:01     Перемещение по файлу клавишами #4
Цитата Сообщение от Pacifique Посмотреть сообщение
Видимо, обработка нажатий клавиш, если под этим понимается перемещение каретки по тексту при нажатии клавиши.
- посмотри как обрабатывать нажатия кнопок вконсоли Стрелки клавиатуры в консоли
Pacifique
0 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 4
03.06.2012, 12:57  [ТС]     Перемещение по файлу клавишами #5
-=ЮрА=-, спасибо, а что нужно добавить, чтобы все-таки каретка двигалась вместо printf(); каждый раз?
-=ЮрА=-
Заблокирован
Автор FAQ
03.06.2012, 13:08     Перемещение по файлу клавишами #6
Pacifique, убил меня вопросом(Сделай очистку экрана и каждый раз пропечатывай текст до нужной позиции,либо ставь курсор в нужную позицию.Куча вариантов есть
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2012, 16:36     Перемещение по файлу клавишами
Еще ссылки по теме:

C++ Перемещение указателя FILE* по файлу
Реализация управления клавишами(стрелки) C++
C++ Игра пятнашки, управление мышью или клавишами, перерисовка фишки

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

Или воспользуйтесь поиском по форуму:
Pacifique
0 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 4
03.06.2012, 16:36  [ТС]     Перемещение по файлу клавишами #7
-=ЮрА=-, знал бы - не спрашивал. Спасибо за помощь.

Добавлено через 3 часа 13 минут
В общем, поискал и написал вот так:
C++
1
2
3
4
5
6
7
8
9
10
COORD pos = {x=0,y=0}; 
HANDLE hCons = GetStdHandle(STD_OUTPUT_HANDLE);  
while(1)  {
           code=getch();
           if (code==72) {COORD pos = {x, y--}; SetConsoleCursorPosition(hCons, pos);} 
           if (code==75) {COORD pos = {x--, y}; SetConsoleCursorPosition(hCons, pos);}  
           if (code==77) {COORD pos = {x++, y}; SetConsoleCursorPosition(hCons, pos);}
           if (code==80) {COORD pos = {x, y++}; SetConsoleCursorPosition(hCons, pos);}
           if (code==27) exit(1);   
          }
Осталась одна проблема: когда передвигаю каретку, к примеру, вправо, после изменения направления она еще раз уходит вправо.
Посоветуйте, пожалуйста, как это можно устранить.
Yandex
Объявления
03.06.2012, 16:36     Перемещение по файлу клавишами
Ответ Создать тему
Опции темы

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