Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] прокрутка с помощью стрелок на клаве 
:(
    Опции темы
spartakdubna
Дата 23.5.2009, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 23.5.2009

Репутация: нет
Всего: нет



спс


Это сообщение отредактировал(а) spartakdubna - 10.6.2009, 15:02
PM MAIL   Вверх
zim22
Дата 23.5.2009, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 16
Всего: 69



Код

do {
    for (;lastenter <= needenter;) {

do|while будет правильней
Код

do {
} while(lastenter <= needenter);


Вот набросал альфа-версию прожки:
Код

#include <conio.h>
#include <fstream>
#include <iostream>
#include <string>
#include <windows.h>
#include <vector>

class MoveObject {
public:
  MoveObject(std::ifstream &in) : file(in), x_pos(0), y_pos(0) { 
    save_text();
    display_text();
  }
  void save_text() {
    std::string line;
    while (getline(file, line)) {
      vs.push_back(line);      
    }
  }
  void down() {
    y_pos += 1;    
    display_text();
  }
  void up() {
    y_pos -= 1;            
    display_text();
  }
  void left() { 
    x_pos -= 1;        
    display_text();
  }
  void right() { 
    x_pos += 1;    
    display_text();
  }
private:
  std::vector<std::string> vs;
  
  void display_text() {
    std::system("cls");
    my_gotoxy(x_pos, y_pos);
    
    for (int i = 0; i != vs.size(); ++i) {      
      std::cout << vs[i] << std::endl;
      for (int cnt = x_pos; cnt > 0; --cnt) std::cout << " ";
    }    
  }
  void my_gotoxy(int x, int y) {
    HANDLE hConsole;
    hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD mycoord;
    mycoord.X=x;
    mycoord.Y=y;
    SetConsoleCursorPosition(hConsole, mycoord);
  }
  std::ifstream &file;  
  int x_pos, y_pos;

};
int main()
{
  enum {DOWN = 80, UP = 72, LEFT = 75, RIGHT = 77};
  std::ifstream in("file.txt");
  if (!in) {
    std::cerr << "Error has occured while opening file" << std::endl;
    return -1;
  }
  MoveObject mo(in);

  int c;
  while (true) {
    c = _getch();
    c = _getch();
    switch(c) {
      case DOWN: mo.down(); break;
      case UP: mo.up(); break;
      case LEFT: mo.left(); break;
      case RIGHT: mo.right(); break;
      default: break;
    }
  }
  
    return 0;
}


file.txt
Код

hello this is text
with my new file
i love it!


Это сообщение отредактировал(а) zim22 - 23.5.2009, 12:03


--------------------
PM MAIL   Вверх
spartakdubna
Дата 5.6.2009, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 23.5.2009

Репутация: нет
Всего: нет



Спасибо большое за прогу, но она для меня пока что сложная)
не мог бы на основе моей доделать прокрутку вверх (вправо и влево уже не надо) с помощью fseek ( так преподаватель сказал). Заранее большое спасибо.
PM MAIL   Вверх
zim22
Дата 5.6.2009, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 16
Всего: 69



Цитата(spartakdubna @  5.6.2009,  12:43 Найти цитируемый пост)
не мог бы на основе моей доделать прокрутку вверх (вправо и влево уже не надо) с помощью fseek ( так преподаватель сказал). Заранее большое спасибо.

не могу. разве что за деньги. заранее большое пожалуйста. 


--------------------
PM MAIL   Вверх
bsa
Дата 5.6.2009, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 1
Всего: 196



Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 
PM   Вверх
maxibum
Дата 6.6.2009, 14:29 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 16.5.2009

Репутация: нет
Всего: нет



Помогите  при помощи цикла вывести на экран календарь текущего месяца.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.