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

помощь(консультация) в написании прогр.на Си-текст.редактор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Builder Что писать в builder вместо void mainprog()? http://www.cyberforum.ru/cpp/thread51276.html
Есть книжка по Borland C 5, в которой есть код #include "franca.h" athlete Sal void mainprog() { Sal.ready(); Sal.say("Hi!"); }
C++ Код для Borland C запуститься на Builder? У меня есть книжка по Borland C++ 5. Запустятся ли исходники, в ней приведенные, на С++ Builder 6? http://www.cyberforum.ru/cpp/thread51270.html
C++ Готов ли я к изучению С++?
Говорят, что перед тем, как изучать С++, надо получить представление о С. Я С не изучал, зато немного знаю PHP. Как считаете, мне хватит этих знаний, или следует для начала изучить С?
C++ Проблема с VS
Привет, поставил себе Visual Studio 2005 релиз, все до этого работало нормально. Сам я работаю в среде БлудШед Dev Cpp. Во время запуска приложения при компиляции или при запуске какого - либо приложения, выскакивает дебагер, который порядком надоел - ниже скриншот. http://i021.***********/0909/e4/bba35e8bb26c.bmp подскажите как его убрать...
C++ Хендел консоли http://www.cyberforum.ru/cpp/thread51031.html
Делаю вот такое: #include <iostream> #include <windows.h> using namespace std; void main() { system("ipconfig"); }
C++ Протокол чата Здравствуйте, писал програмулину для автоматического входа в чат. Поставил HTTPAnalyzer и проснифил, что куда. В итоге все сделал, но возник вопрос. В чате сбоку имеется панель с имена тех, кто находится в чате и периодически обновляется. Вот мне интересно, каким образом оно обновляется. В пакетах приходят только сообщения людей и функция updus со списком имен. Но все эти имена тех кто... подробнее

Показать сообщение отдельно
soadpol
0 / 0 / 0
Регистрация: 19.09.2009
Сообщений: 16

помощь(консультация) в написании прогр.на Си-текст.редактор - C++

19.09.2009, 04:12. Просмотров 1060. Ответов 1
Метки (Все метки)

Тут вот задали написать текстовой редактор на си,выдана программа-заготовка,она по идее якобы
тот же текст.ред.но урезанный,в общем беру эту прогу,пытаюсь компилировать,но -куча ошибок(чего
в принципе быть не должно), начинаю смотреть вид ошибок,понимаю что не подключены нек.библиотеки #include,кое-что узнаю,вношу,но остается все таки еще-

c:14: предупреждение: инициализация из несовместимого типа указателя .c:14: ошибка: элемент инциализатора является не константа .c:14: предупреждение: определение данных не имеет тип или класс памяти Выполнение завершено
вот текст проги-

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
/*Задание: Просмотр текстовых файлов с использованием стрелок и*/
/*         клавиш Page Up,Page Down,Home,End*/
/*---------------------w_edit.c------------------*/
#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <malloc.h>
#include <conio.h>
#include <dos.h>
char *rs[100];
far*p=(char far *)MK_FP(0xB800,0x0000) ;/*строка 14,здесь ошибка*/
int main(int argc,char *argv[])
{void wr_text(int xt,int yt,int xk,int yk);
 void pr_koor(int xt,int yt,int xk,int yk);
 FILE *f1;
 int i,j,c,yk,xk,xt,yt,kstr;
 if(argc!=2)
   {printf("неверные параметры"); getch();goto mret;}
   
/*Выделение памяти под указатели*/
 for(i=0;i<=100;i++)
  if((rs[i]=malloc(100))==NULL)
   {printf("Недостаточно памяти");goto mret;}
 if ((f1=fopen(argv[1],"r"))==NULL)
  {printf("Файл %s не открывается",argv[1]); goto mret;}
 for(i=0;i<=100;i++)
   for(j=0;j<=100;j++)
      *(rs[i]+j)=' ';
      
/*Формирование файла в памяти;*/
 i=0;
 while(fgets(rs[i++],100,f1)!=NULL)
  if(i==100) break;
 kstr=i-2;
 printf("kstr=%d",i);
 c=getch();
 
 gotoxy(1,1);
 
/*Вывод sr на экран*/
 xt=0;yt=0;
 for(i=yt;i<=22;i++)
   for(j=xt;j<=79;j++)
    { if((*(rs[i]+j)==' ')|(*(rs[i]+j)=='\0')|(*(rs[i]+j)=='\n'))
       putchar(' ');
     else
       putchar(*(rs[i]+j));
    }
 xk=1;yk=1;
 pr_koor(xt,yt,xk,yk);
 gotoxy(1,1);
 while(1 )
 {
  c=getch();
  if(c=='\0') c=getch();
  yk=wherey();xk=wherex();
   switch(c)
     {
      case 72:{if( yk>1)/*Стрелка вверх*/
                {yk--;gotoxy(xk,yk);
                pr_koor(xt,yt,xk,yk);
                }
               else
                if(yt>0)
                 {yt--;wr_text(xt,yt,xk,yk);
                 }
               break;
              }
      case 119:{            /*Ctrl-Home*/
                 yt=0;xt=0;yk=1;xk=1;
                 wr_text(xt,yt,xk,yk);
                 break;
               }
      case 117:{            /*Ctrl-End*/
                 yt=kstr-21;
                 if(yt<0) yt=0;yk=kstr-yt+2;xk=1;
                 wr_text(xt,yt,xk,yk);
                 break;
               }
      case 80:{if( yk<=22)          /*Стрелка вниз*/
                {yk++;gotoxy(xk,yk);
                pr_koor(xt,yt,xk,yk);
                }
               else
                if(yt<77)
                 {yt++;wr_text(xt,yt,xk,yk);
                 }
              break;
              }
 
       case 75:{if( xk>1)        /*Стрелка влево*/
                {xk--;gotoxy(xk,yk);
                 pr_koor(xt,yt,xk,yk);
                }
               else
                if(xt>0)
                 {xt--;wr_text(xt,yt,xk,yk);
                 }
 
               break;
              }
       case 77:{if( xk<80)        /*Стрелка вправо*/
                {
                 xk++;gotoxy(xk,yk);
                 pr_koor(xt,yt,xk,yk);
                }
                else
                 if(xt<20)
                  {
                   xt++;wr_text(xt,yt,xk,yk);
                  }
                break;
               }
      case 73:{if( yt>22)       /*Page Up*/
                {yt-=23;wr_text(xt,yt,xk,yk);
                }
               else
                if(yt>0)
                 {yt=0;wr_text(xt,yt,xk,yk);
                 }
                else
                {yk=1;gotoxy(xk,yk);
                pr_koor(xt,yt,xk,yk);
                }
               break;
              }
      case 81:{if( yt<=55)       /*Page Down*/
                {yt+=23;wr_text(xt,yt,xk,yk);
                }
               else
                if(yt<77)
                 {yt=77;wr_text(xt,yt,xk,yk);
                 }
                else
                {yk=23;gotoxy(xk,yk);
                pr_koor(xt,yt,xk,yk);
                }
               break;
              }
      case 71:{ xt=0;xk=1;       /*Home*/
                wr_text(xt,yt,xk,yk);
                break;
              }
      case 79:{                /*End*/
               for(j=99;j>0;j--)
                {if(!((*(rs[yt+yk-1]+j)==' ')|(*(rs[yt+yk-1]+j)=='\0')|
                   (*(rs[yt+yk-1]+j)=='\n')))
                  break;
                }
               j++; /*Позиция за последним символом строки в файле памяти*/
               if(j<=xt+79)
                {xk=j-xt+1;gotoxy(xk,yk);pr_koor(xt,yt,xk,yk);}
               break;
              }
      case 27: goto mret;
/*      case 0..255:{rs[xt+xk]+[yt+yk]
      for (i=100,i>xt+xk-1,i--)
         {rs[i]+[yt+yk]:=rs[i-1]+[yt+yk];}
          rs[xt+xk]+[yt+yk]:=c;}*/
 
 
     }
  }
 mret:;
}
void wr_text(int xt,int yt,int xk,int yk)
{
 int i,j;
 
 gotoxy(1,1);
 for(i=0;i<=22;i++)
  for(j=0;j<=79;j++)
       { if((*(rs[i+yt]+j+xt)==' ')|(*(rs[i+yt]+j+xt)=='\0')|
       (*(rs[i+yt]+j+xt)=='\n'))
       *(p+i*160+j*2)=' ';
     else
       *(p+i*160+j*2)=*(rs[i+yt]+j+xt);
    }
 gotoxy(35,25);
 printf("line %2d,pos %2d (xk=%2d,yk=%2d,xt=%2d,yt=%2d)",yk+yt,xk+xt,xk,yk,xt,yt);
 gotoxy(xk,yk);
}
хотелось бы узнать что означает far*p=(char far *)MK_FP(0xB800,0x0000)
это что-то вроде резервирует память?какая нужна #include
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru