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

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

Войти
Регистрация
Восстановить пароль
 
Pacifique
0 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 4
#1

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

02.06.2012, 18:13. Просмотров 615. Ответов 6
Метки нет (Все метки)

Здравствуйте.
Писал программу, позволяющую просматривать текстовый файл.
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 секунд
Ап, пожалуйста, помогите!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2012, 18:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перемещение по файлу клавишами (C++):

Перемещение по бинарному файлу - C++
Перемещаться можно по файлу использую функции seekg() для чтения и seekp() для записи... В общем для того, чтобы перемещаться по файлу и...

Перемещение по текстовому файлу. - C++
Задача стоит такая: Есть текстовый файл, где разные части текста отделены каким-либо спецсимволом (можно нумерованным, или не...

Перемещение указателя FILE* по файлу - C++
Здравствуйте. какой есть способ перемещать указатель по файлу по байтово вместо fgetc()? те у меня есть указатель на начало...

Работа с клавишами стрелка и т.д - C++
Народ, помогите. Как написать программу типа if("нажата клавиша вверх") { cout << 500; } else if("нажата клавиша вниз") ...

Реализация управления клавишами(стрелки) - C++
Всем привет. Собственно в чем вопрос. Пишу простенькую базу данных студентов и хочу реализовать выбор в меню как в биосе. Тобишь, у...

Игра пятнашки, управление мышью или клавишами, перерисовка фишки - C++
Думаю,что все знакомы с игрой пятнашки. Пока я только смогла нарисовать и задать начальное положение фишек.Но как подключить управление,я...

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

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

Перемещение по дереву клавишами - JavaScript
Делаю дерево папок компьютера. что-то типо такого всё запилил, оформил, осталось запилить кнопки стрелка вверх - перемещаем...

Перемещение картинки клавишами - Visual Basic
Нужно перемещать image1 по picturebox(image лежит внутри picturebox) вот этот код вроде но он не перемещает , может его куда вставить...

Перемещение формы навигационными клавишами (стрелками) - C#
Как реализовать перемещение формы навигационными клавишами (стрелками) вверх, вниз, вправо, влево. Желательно чтоб работало и на WPF.

Не работает перемещение курсора клавишами со стрелками sh - Linux GUI
Приветствую. Раньше, когда вводил команды в терминале и допускал ошибку, то мог обычными стрелками на клавиатуре переместиться к букве или...


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

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

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