Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Подскажите как доделать прокрутку текста [c++]

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Подскажите как доделать прокрутку текста [c++]
Имя
Сообщение << Старые топики   Новые топики >>
Подскажите как доделать прокрутку текста [c++] - 2009-06-07 16:22:44.930000   
spartakdubna

Сообщений: 9
Оценки: 0
Присоединился: 2009-06-05 15:06:05.380000
Привет всем!
Подскажите как доделать вот такую прогу:
Открывается текстовый файл и по нажатию клавиши вниз текст сдвигается вниз на одну строчку, нужно доделать, чтобы по нажатию вверх текст сдвигался вверх так же на одну строчку.
Преподаватель сказал можно доделать с помощью fseek, но что-то у меня не получается(: Может подскажите как это реализовать? Или ещё какие нибудь идеи подкинете.
Вот начальный код программы:

#include <stdio.h>
#include <conio.h>
#define LINECOUNTSYMBOL 80
#define PAGELINES       25
#define TRUE 1
#define FALSE 0
#define KEYESC 27

void typefile(const char *file)
{
FILE *in;
int cfile, ckey;
int lastenter = 0, needenter = PAGELINES;
int seekline = 0;

if ((in = fopen(file, "r")) == NULL) {
    printf("Can not open file %s", file);
    return;
}
do {
    for (;lastenter <= needenter;) {
        cfile = fgetc(in);
        if (cfile < 0 || cfile > 255 || feof(in)) needenter = lastenter;
        else {
            if (cfile == 10 || seekline >= LINECOUNTSYMBOL) {
                lastenter++;
                seekline = 0;
                putchar('\n');
            }
            if (cfile != 10) {
                seekline++;
                putchar(cfile);
            }
        }
    }
    ckey = getch();
    switch(ckey) {
    case KEYESC: break;
    case 224:
        ckey = getch();
        if (ckey == 80) needenter++;
        else if (ckey == 72) {
       

        }
        break;
    }
} while (ckey != KEYESC);

void main(int argc, char * argv[])
{
if (argc < 2) {
    printf("Count of arguments is small!\n");
    return;
}
typefile(argv[1]);
}

Post #: 1
RE: Подскажите как доделать прокрутку текста [c++] - 2009-06-07 16:32:47.963333   
Hateman

Сообщений: 62
Оценки: 0
Присоединился: 2009-06-06 20:22:22.040000
Я особенно не разбирался, но:
1. for (;lastenter &lt;= needenter;) Лучше заменить на while.

2. Внешний do зачем нужен?

3.
quote:

чтобы по нажатию вверх текст сдвигался вверх так же на одну строчку.

С потерей верхней строки?
Post #: 2
RE: Подскажите как доделать прокрутку текста [c++] - 2009-06-07 16:38:42.460000   
spartakdubna

Сообщений: 9
Оценки: 0
Присоединился: 2009-06-05 15:06:05.380000
Да спасибо на while я уже заменил. По нажатию вверх одна нижняя строка пропадает, т.е. текст сдвигается вниз.
do вроде так выполняется:
Если полученный символ равен переводу строки или символов в строке >= 80, то увеличиваем счётчик перевода строки(lastenter) и обнуляем счётчик символов в строке(seekline) делаем перевод строки, а если полученный символ не равен \n то увеличиваем счётчик символов в строке
Post #: 3
RE: Подскажите как доделать прокрутку текста [c++] - 2009-06-07 18:33:43.893333   
Hateman

Сообщений: 62
Оценки: 0
Присоединился: 2009-06-06 20:22:22.040000
quote:

2. Внешний do зачем нужен?

Я стормозил.

Открыл BC, с трудом вспомнил что к чему…
Кое-что накропал, но код не работает по-человечески:
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #define LINECOUNTSYMBOL 80 #define PAGELINES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25 #define TRUE 1 #define FALSE 0 #define KEYESC 27 void typefile(const char *file) { FILE *in; int cfile, ckey; int lastenter = 0, needenter = PAGELINES; int seekline = 0, lines_on_cur_page = 0; long fpos = 0, tmp_fpos = -1; if ((in = fopen(file, "r")) == NULL) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Can not open file %s", file); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return; } do { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (lastenter &lt; needenter) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (tmp_fpos &lt; 0) fgetpos(in, &amp;tmp_fpos); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cfile = fgetc(in); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (cfile &lt; 0 || cfile &gt; 255 || feof(in)) needenter = lastenter; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (cfile == 10 || seekline &gt;= LINECOUNTSYMBOL) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lastenter++; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; seekline = 0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; putchar('\n'); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (++lines_on_cur_page &gt;= PAGELINES) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fpos = tmp_fpos; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tmp_fpos = -1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lines_on_cur_page = 0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (cfile != 10) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; seekline++; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; putchar(cfile); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ckey = getch(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch(ckey) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case KEYESC: break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 80: needenter++; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 72: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clrscr(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lastenter = --needenter - PAGELINES; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; needenter = (needenter &lt; PAGELINES) ? PAGELINES : needenter; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lastenter = (lastenter &lt; 0) ? 0 : lastenter; //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; seekline--; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fsetpos(in, &amp;fpos); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break; /*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 224: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ckey = getch(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ckey == 80) needenter++; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (ckey == 72) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;*/ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } } while (ckey != KEYESC); } main() { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clrscr(); /*if (argc &lt; 2) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Count of arguments is small!\n"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return; }*/ typefile("test.txt"); return 0; }
Идея такая:

1. Нужно запомнить позицию в файле, которая представлена первым символом экрана, предшествующего текущему видимому.
Это, как раз у меня, и не работает. Доделывать пока что не буду. Хочу кушать.

2. Затем нужно скорректировать needenter -= 1;
3. lastenter =  needenter - PAGELINES;
4. Переместить файловый указатель.
Post #: 4
RE: Подскажите как доделать прокрутку текста [c++] - 2009-06-07 18:39:38.766666   
Hateman

Сообщений: 62
Оценки: 0
Присоединился: 2009-06-06 20:22:22.040000
Кстати:
1.) Переводы строки в DOS - это два символа: CRLF.
У тебя учитывается только LF. Отсюда дополнительные сложности.

2.) Возможно сделать проще, во-первых, читая файл поблочно, а, во-вторых,
загнав его куски в массив.
Post #: 5
RE: Подскажите как доделать прокрутку текста [c++] - 2009-06-07 18:56:07.696666   
spartakdubna

Сообщений: 9
Оценки: 0
Присоединился: 2009-06-05 15:06:05.380000
Спасибо огромное сейчас буду разбираться, что к чему.
Идея насчёт массива очень хорошая, но вот реализовать её…
Если через массив проще, может через него попробовать?
Как понять считываем попблочно?
Post #: 6
RE: Подскажите как доделать прокрутку текста [c++] - 2009-06-07 20:10:05.863333   
Hateman

Сообщений: 62
Оценки: 0
Присоединился: 2009-06-06 20:22:22.040000
quote:

Спасибо огромное сейчас буду разбираться, что к чему.

Не благодари, т.к. по-человечески не работает. Я тебе только идею предложил, а решать подходит
ли она и реализовывать тебе самому придётся, т.к. я не доделал.

quote:

Идея насчёт массива очень хорошая, но вот реализовать её…
Если через массив проще, может через него попробовать?

По-моему, через массив проще. Но, в теории, через массив эффективнее. На практике, - не факт.

quote:

Как понять считываем попблочно?

В твоём случае, файл считывается посимвольно с fgetc().
Может считывать его блоками, используя fread()?
Причём, читать блоки в динамически выделяемый массив…
Post #: 7
RE: Подскажите как доделать прокрутку текста [c++] - 2009-06-07 20:26:02.500000   
spartakdubna

Сообщений: 9
Оценки: 0
Присоединился: 2009-06-05 15:06:05.380000
А если считывать построчно?
Post #: 8
RE: Подскажите как доделать прокрутку текста [c++] - 2009-06-07 21:16:15.166666   
Hateman

Сообщений: 62
Оценки: 0
Присоединился: 2009-06-06 20:22:22.040000
Тоже вариант.
Post #: 9
RE: Подскажите как доделать прокрутку текста [c++] - 2009-06-07 22:09:06.443333   
spartakdubna

Сообщений: 9
Оценки: 0
Присоединился: 2009-06-05 15:06:05.380000
забыл спросить, что значат вот эти строчки:
needenter = (needenter < PAGELINES) ? PAGELINES : needenter;
lastenter = (lastenter < 0) ? 0 : lastenter;

Post #: 10
RE: Подскажите как доделать прокрутку текста [c++] - 2009-06-07 22:16:27.163333   
Hateman

Сообщений: 62
Оценки: 0
Присоединился: 2009-06-06 20:22:22.040000
Если lastenter, needenter < 0, то они устанавливаются в нуль и PAGELINES, соответственно.
Post #: 11
RE: Подскажите как доделать прокрутку текста [c++] - 2009-06-08 20:56:42.300000   
spartakdubna

Сообщений: 9
Оценки: 0
Присоединился: 2009-06-05 15:06:05.380000
блин чё-то не получается, а послезавтра экзамен( может поможете реализовать идею с массивом
Post #: 12
RE: Подскажите как доделать прокрутку текста [c++] - 2009-06-09 13:42:40.386666   
Hateman

Сообщений: 62
Оценки: 0
Присоединился: 2009-06-06 20:22:22.040000
quote:

блин чё-то не получается, а послезавтра экзамен(

Прям, "в усмешке недоброй лицо бытия". :-/

Сделал косо, криво, идею с буфером полностью не реализовал. Но, вроде, работает.

#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;mem.h&gt; #define LINECOUNTSYMBOL 80 #define PAGELINES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25 #define TRUE 1 #define FALSE 0 #define KEYESC 27 //#define LINE_DELIMETER "\015\012" // Page size in characters const page_size = (LINECOUNTSYMBOL + 1)* PAGELINES; typedef char TPageLines[PAGELINES][LINECOUNTSYMBOL + 1]; //--------------------------------------------------------------------------- // Bad. Pages und lines have variable size. /*void goto_page(FILE* fs, const int page_number) { &nbsp;&nbsp;&nbsp; fseek(fs, page_number * page_size, SEEK_SET); } //--------------------------------------------------------------------------- void read_page(FILE* fs, char *page_buffer) { &nbsp;&nbsp;&nbsp; fread(page_buffer, page_size, 1, fs); } //--------------------------------------------------------------------------- long get_page_number(FILE *fs) { &nbsp;&nbsp;&nbsp; register long file_pos = ftell(fs); &nbsp;&nbsp;&nbsp; return(((file_pos % page_size) &gt; 0) ? file_pos / page_size + 1 : &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; file_pos / page_size); } //--------------------------------------------------------------------------- */ //--------------------------------------------------------------------------- long get_file_size(FILE *fs) { &nbsp;&nbsp;&nbsp; long fpos = ftell(fs); &nbsp;&nbsp;&nbsp; fseek(fs, 0, SEEK_END); &nbsp;&nbsp;&nbsp; long fsize = ftell(fs); &nbsp;&nbsp;&nbsp; fseek(fs, fpos, SEEK_SET); &nbsp;&nbsp;&nbsp; return(fsize); } //--------------------------------------------------------------------------- int _fastcall myfgets(char *s, FILE *fs) { &nbsp;&nbsp;&nbsp; // I can't understood how works fucking fgets! fscanf works not in the &nbsp;&nbsp;&nbsp; // manner, that need me (it's reads words, but not strings) &nbsp;&nbsp;&nbsp; // VERY DIRTY! NEED OPTIMIZATIONS! &nbsp;&nbsp;&nbsp; char buf[LINECOUNTSYMBOL + 1]; &nbsp;&nbsp;&nbsp; int buf_sz = LINECOUNTSYMBOL; &nbsp;&nbsp;&nbsp; long cur_fpos = ftell(fs); &nbsp;&nbsp;&nbsp; register int i = 0; &nbsp;&nbsp;&nbsp; int retv = fread(buf, buf_sz - 1, 1, fs); &nbsp;&nbsp;&nbsp; if (!retv) &nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // reading end of file &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fseek(fs, cur_fpos, SEEK_SET); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; long sz_end = get_file_size(fs) - cur_fpos; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; buf_sz = sz_end; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; retv = fread(buf, 1, sz_end, fs); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ((retv &lt; 0) || !retv) return(-1); &nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp; //buf[LINECOUNTSYMBOL + 1] = '\0'; &nbsp;&nbsp;&nbsp; //memcpy(s, buf, LINECOUNTSYMBOL + 1); &nbsp;&nbsp;&nbsp; for (i = 0; i &lt; buf_sz - 1; i++) &nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ((buf[i] == 13) || (buf[i] == 10)) &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fseek(fs, cur_fpos + i + 2, SEEK_SET); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; break; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (s) s[i] = buf[i]; &nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp; if (s) s[i] = '\0'; &nbsp;&nbsp;&nbsp; return(i); } //--------------------------------------------------------------------------- void _fastcall goto_page(FILE* fs, const int page_number) { } //--------------------------------------------------------------------------- inline int _fastcall read_line(char *s, FILE *fs, int *line_number) { &nbsp;&nbsp;&nbsp; register int result = -1; &nbsp;&nbsp;&nbsp; if ((result = myfgets(s, fs)) != -1) (*line_number)++; &nbsp;&nbsp;&nbsp; return(result); } //--------------------------------------------------------------------------- int _fastcall goto_line(FILE *fs, const int line_number) { &nbsp;&nbsp;&nbsp; register int result = -1; &nbsp;&nbsp;&nbsp; fseek(fs, 0, SEEK_SET); &nbsp;&nbsp;&nbsp; for (register int i = 0; i &lt; line_number; i++) &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ((result = myfgets(NULL, fs)) == -1) break; &nbsp;&nbsp;&nbsp; return(result); } //--------------------------------------------------------------------------- int _fastcall read_page(FILE* fs, TPageLines page_buffer, int *global_line) { &nbsp;&nbsp;&nbsp; register int line_number = 0; &nbsp;&nbsp;&nbsp; for (line_number = 0; line_number &lt; PAGELINES; line_number++) &nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (read_line(page_buffer[line_number], fs, global_line) == -1) break; &nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp; return(line_number); } //--------------------------------------------------------------------------- void typefile(const char *file) { &nbsp;&nbsp;&nbsp; FILE *in; &nbsp;&nbsp;&nbsp; //char page_buffer[page_size]; &nbsp;&nbsp;&nbsp; TPageLines page_lines; &nbsp;&nbsp;&nbsp; int cfile, ckey; &nbsp;&nbsp;&nbsp; int lines_on_page = 0; &nbsp;&nbsp;&nbsp; int line_in_file = 0; &nbsp;&nbsp;&nbsp; long fpos = 0, tmp_fpos = -1; &nbsp;&nbsp;&nbsp; if ((in = fopen(file, "r")) == NULL) &nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; printf("Can not open file %s", file); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return; &nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp; lines_on_page = read_page(in, page_lines, &amp;line_in_file); &nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; lines_on_page; i++) puts(page_lines[i]); &nbsp;&nbsp;&nbsp; do &nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ckey = getch(); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; switch(ckey) &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case KEYESC: break; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case 80: // down &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (goto_line(in, line_in_file + 1) != -1) &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; memmove(page_lines, page_lines + LINECOUNTSYMBOL + 1, &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; lines_on_page - 1); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; read_line(page_lines[lines_on_page - 1], in, &amp;line_in_file); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // for (int i = 0; i &lt; lines_on_page; i++) puts(page_lines[i]); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; puts(page_lines[lines_on_page - 1]); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; break; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case 72: // up &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (goto_line(in, line_in_file - 1 - PAGELINES) != -1) &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; line_in_file -= (1 + PAGELINES); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; lines_on_page = read_page(in, page_lines, &amp;line_in_file); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; lines_on_page; i++) puts(page_lines[i]); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; break; /*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 224: &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; ckey = getch(); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; if (ckey == 80) needenter++; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; else if (ckey == 72) { &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; } &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; break;*/ &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp; } while (ckey != KEYESC); } //--------------------------------------------------------------------------- main() { &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; clrscr(); /*if (argc &lt; 2) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Count of arguments is small!\n"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return; }*/ typefile("test.txt"); return 0; }
P.S.: Кстати, можешь зарегаться на форуме: artiomsoft.zx6.ru/phpbb?
Форум свой охота, ну вот охота и всё тут. К тому же, здесь неудобно отвечать, у меня бытрый ответ нормально не работает, и, вообще, всё тормозит.
Post #: 13
RE: Подскажите как доделать прокрутку текста [c++] - 2009-06-09 17:15:26.260000   
spartakdubna

Сообщений: 9
Оценки: 0
Присоединился: 2009-06-05 15:06:05.380000
Да ну ты мозг) спасибо. На форуме уже зарегался.
Ничё что прога не оптимизирована, мне и такая сойдёт.
Post #: 14
RE: Подскажите как доделать прокрутку текста [c++] - 2009-06-09 17:28:02.696666   
Hateman

Сообщений: 62
Оценки: 0
Присоединился: 2009-06-06 20:22:22.040000
Мда, кстати, я заметил, что прокрутка вверх начинается только с третьей-четвёртой строки.
И с отображением первой какая-то фигня. По идее, надо доделывать.

P.S.: За регистрацию спасибо. А то там админ скучает.
P.P.S.: На том форуме я часто бываю. Если не лень, отпиши, когда сдашь. Любопытно.
Post #: 15
RE: Подскажите как доделать прокрутку текста [c++] - 2009-06-13 01:39:28.136666   
agdam

Сообщений: 29
Оценки: 0
Присоединился: 2008-07-03 02:17:47.360000
Извиняюсь может я не в тему,но мою тему удалили,решил сюда поставить.Ребята помогите доделать задачу-немогу понять где находится ошибка,я ещё плохо разбираюсь в С++,мне нужно решить задание.Заранее благодарен.

//подключить потоковую библиотеку ввода-вывода #include &lt;iostream&gt; //использовать стандартное пространство имен using namespace std; //начало функции main int main() { &nbsp;//ввести значение a,b,c &nbsp;&nbsp;&nbsp; double a,b,c; &nbsp;&nbsp;&nbsp; cout &lt;&lt; "Enter a:"; &nbsp;&nbsp;&nbsp; cin &gt;&gt; a; &nbsp;&nbsp;&nbsp; cout &lt;&lt; "Enter b:"; &nbsp;&nbsp;&nbsp; cin &gt;&gt; b; &nbsp;&nbsp;&nbsp; cout &lt;&lt; "Enter c:"; &nbsp;&nbsp;&nbsp; cin &gt;&gt; c; &nbsp;//узнать равен ли а нулю &nbsp;&nbsp;&nbsp; if(a==0) &nbsp;&nbsp;&nbsp; { &nbsp;//вывести решениe b,c &nbsp;&nbsp;&nbsp; &nbsp;if(b==0 &amp;&amp; c==0) &nbsp;&nbsp;&nbsp; { &nbsp;//вывеси сообщение x &nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "Any x is solution"; &nbsp;&nbsp;&nbsp;&nbsp; }else &nbsp; if(b==0 &amp;&amp; c!=0) &nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;//Если b равно нулю а c не равно нулю &nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "x=0:"; &nbsp;&nbsp;&nbsp;&nbsp; } &nbsp; else &nbsp;&nbsp;&nbsp; &nbsp;} &nbsp;&nbsp;&nbsp; x=-c/b; &nbsp;&nbsp;&nbsp; cout &lt;&lt; x &lt;&lt; endl; &nbsp;&nbsp;&nbsp; &nbsp;{ &nbsp;&nbsp;&nbsp; else &nbsp;&nbsp;&nbsp; &nbsp;} &nbsp;//вычислить дискриминант &nbsp;&nbsp;&nbsp; &nbsp;double d=b*b-4*a*c; &nbsp;&nbsp;&nbsp; &nbsp;if(d==0) &nbsp;&nbsp;&nbsp; &nbsp;{ &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;d=-b/(2*a); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;cout &lt;&lt; "d равно нулю." &lt;&lt; endl; &nbsp;&nbsp;&nbsp; &nbsp;} &nbsp;&nbsp;&nbsp; &nbsp;else &nbsp;&nbsp;&nbsp; &nbsp;{ &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;x1=(-b - sgrt (d))/(2*a); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;x2=(-b + sgrt (d))/(2*a); &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;cout &lt;&lt; "d не равно нулю." &lt;&lt; endl; &nbsp;&nbsp;&nbsp; &nbsp;} &nbsp;&nbsp;&nbsp; &nbsp;cout("x1=%f x2=%f"); }
Post #: 16
RE: Подскажите как доделать прокрутку текста [c++] - 2009-06-13 11:02:27.210000   
Hateman

Сообщений: 62
Оценки: 0
Присоединился: 2009-06-06 20:22:22.040000
//подключить потоковую библиотеку ввода-вывода #include &lt;iostream.h&gt; #include &lt;math.h&gt; //использовать стандартное пространство имен //using namespace std; //начало функции main int main() { //ввести значение a,b,c &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double a, b, c; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "Enter a:"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cin &gt;&gt; a; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "Enter b:"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cin &gt;&gt; b; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "Enter c:"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cin &gt;&gt; c; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(a == 0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //вывести решениe b,c &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(b == 0 &amp;&amp; c == 0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "Any x is solution"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if(b == 0 &amp;&amp; c != 0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "x = 0:"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double x = -c/b; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; x &lt;&lt; endl; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } // a == 0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //вычислить дискриминант &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double D = b*b - 4*a*c; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double x1, x2; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (D == 0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x1 = x2 = -b/(2*a); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "D равно нулю." &lt;&lt; endl; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x1 = (-b - sqrt(D)) / (2*a); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x2 = (-b + sqrt(D)) / (2*a); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "D не равно нулю." &lt;&lt; endl; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "x1 = " &lt;&lt; x1 &lt;&lt; endl &lt;&lt; "x2 = " &lt;&lt; x2 &lt;&lt; endl; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } // else if (a != 0 }
P.S.: Большая просьба зарегистрировать у меня на форуме: artiomsoft.zx6.ru/phpbb
Хочется чтобы народу сколько-нибудь было.
Post #: 17
RE: Подскажите как доделать прокрутку текста [c++] - 2009-06-13 17:13:54.190000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
А что за форум? Ты бы хоть имя себе нормальное купил :), всего 10 баксов в год стоит.
Post #: 18
RE: Подскажите как доделать прокрутку текста [c++] - 2009-06-13 19:54:17.353333   
Hateman

Сообщений: 62
Оценки: 0
Присоединился: 2009-06-06 20:22:22.040000
quote:

А что за форум? Ты бы хоть имя себе нормальное купил :), всего 10 баксов в год стоит.

Я человек бедный. :-) Домен 2-го уровня у меня есть, но он нахаляву, хостер только HTML разрешает. Смысла сейчас покупать нет, т.к. пока что не известно пригодится ли.
Форум изначально для поддержки софта, а так - на любую тематику.
Мне ещё самому важно, чтобы народ приходил. Чтобы было с кем общаться.
Так что, если зарегистрируешься, буду благодарен: artiomsoft.zx6.ru/phpbb .
Post #: 19
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Подскажите как доделать прокрутку текста [c++]







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.