Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2011, 11:08   #1
DanteAligeri
Новичок
Джуниор
 
Регистрация: 05.06.2011
Сообщений: 1
По умолчанию Вывод строки на графический экран.

Текст задания; Вывести в графическом режиме,тект из .txt файла.Если текст не помешается в окно,осуществить скроллинг.
Я смог вывести строку из файла,но не могу ''Разделить'' ее построчно впрочем вот скриншот.

текст выводится поверх предыдущего а не спускается на новую строку.А в новой строке просто дублируется.
И со скроллингом тоже проблема мышь подключил,но понятия не имею как осуществить(((
Среда разработки Borland 3.1


Код:
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <alloc.h>
#include <graphics.h>
#include <IO.h>
#include <dos.h>
#define CLIP_ON 1
#include <process.h>
#include <iostream.h>
struct REGPACK ioregs,regs;
char *font[] = { "DEFAULT_FONT",
                 "TRIPLEX_FONT",
                 "SMALL_FONT",
                 "SANS_SERIF_FONT",
		 "GOTHIC_FONT"
               };


char *dir[] = { "HORIZ_DIR", "VERT_DIR" };


char *hjust[] = { "LEFT_TEXT", "CENTER_TEXT", "RIGHT_TEXT" };


char *vjust[] = { "BOTTOM_TEXT", "CENTER_TEXT", "TOP_TEXT" };
char *clip[] = { "OFF", "ON" };
main()

{ int gdriver=DETECT,gmod,errorcode;
  int midx,midy;
  struct textsettingstype textinfo;
  struct viewporttype viewinfo;
  int nbuttons, OK;



  char *a,*xrange,*yrange;
  int x1=80,x2=90,y1=1,y2=200;
  initgraph(&gdriver,&gmod, "");
  errorcode = graphresult();
{
  ioregs.r_cx=x1;
  ioregs.r_dx=x2;
  ioregs.r_ax=7;
  geninterrupt(0x33);
  ioregs.r_cx=y1;
  ioregs.r_dx=y2;
  ioregs.r_ax=8;
  geninterrupt(0x33);
}
  ioregs.r_ax=0;
  intr(0x33,&ioregs);
  ioregs.r_ax=2;
  intr(0x33,&ioregs);

  if (errorcode != grOk)
{
  printf("Graphics error: %s\n", grapherrormsg(errorcode));
  printf("Press any key to halt:");
  getch();
  ioregs.r_ax=1;
  exit(1);
}
  else
{
   
	clrscr();
	FILE *in=fopen("one.txt", "r"),*out;    //Открываю файл    
	char *str,*a,*c;
	fseek(in,0,SEEK_END);
	fseek(in,0,SEEK_SET);
	int z,x,y,r,p,o,i,ht,k,n,N;
	a=(char*)calloc(N,sizeof(int));                 
	cleardevice();
	setviewport(0,0,0,0,0);

	do
{
	fgets(a,x,in);                        //читает строку из файла                                  
      r=strlen(str);                       
	setcolor(GREEN);
	textbackground(GREEN);
	midx=300;
	midy=0;
	settextjustify(CENTER_TEXT,CENTER_TEXT);
	for(i=0;i<10;i++)
{
	ht=20;
	outtextxy(midx,midy+ht*i,a);          //выводит строку на экран,при каждом прохождении цикла "опускает" строку                
}
	midy=getmaxy()/2;
}
}
	while(!(feof(in)));
	fclose(in);
	getch();
	ioregs.r_ax=2;
	delay(1);


	switch(getch())
{
	case 27:
	exit(1);
	break;
}
	free(a);
	free(str);
	free(c);
	
}
	closegraph();
	return(0);
}

Последний раз редактировалось DanteAligeri; 05.06.2011 в 11:13.
DanteAligeri вне форума Ответить с цитированием
Старый 06.06.2011, 10:15   #2
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Брате, имя поэта пишется Alighieri. ;)


Там где "читает строку из файла", тебе не нужен внутренний цикл. Правильнее так:

Код:
int i=0;

do
{
	fgets(a,x,in);      //читает строку из файла                                  
	r=strlen(str);                       
	setcolor(GREEN);
	textbackground(GREEN);
	midx=300;
	midy=0;
	settextjustify(CENTER_TEXT,CENTER_TEXT);
	ht=20;
	outtextxy(midx,midy+ht*i,a);          //выводит строку на экран,при каждом прохождении цикла "опускает" строку                
	i++;
	midy=getmaxy()/2;
}
while(!(feof(in)));
ds.Dante вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ассемблер. вывод строки на экран. Rikki-Tikki Помощь студентам 4 18.04.2011 23:51
вывод строки на экран veter_s_morya Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 20.06.2010 18:25
черный экран при переходе из текстового в графический режим Yfltymrf Паскаль, Turbo Pascal, PascalABC.NET 1 27.04.2010 23:24