Flytta tecken

C/C++

9 svar · 625 visningar · startad av eas

Medlem sedan sep. 2001269 inlägg
Trådstart#1

Tja,
nån som vet nåt sätt att flytta runt tecken på skärmen.

Jag känner till gotoxy() men den flytta väll allt på skärmen, eller?

Det jag vill göra är att bara flytta et tecken på skärmen medan de andra blit kvar där de är. Är det möjligt, tro?

Medlem sedan juni 200010 432 inlägg
#2

För ett tag sen såg jag en sån grej i ASM. Borde gå att implementera med inline assembler... jag tror att jag såg detta i nån asm-tutor på http://gamedev.net .

Medlem sedan feb. 20002 300 inlägg
#3

Vilken plattform gäller det?
Konsollfönster i windows?

Medlem sedan sep. 2001269 inlägg
#4

Console Application

Medlem sedan juni 200010 432 inlägg
#5

Jo men det är ju bra att veta i vilket OS, processor m.m.. ;)

Hur som helst röstar jag fortfarande för lite inlineasm, men jag har tyvärr ingen länk att erbjuda

Medlem sedan feb. 20002 300 inlägg
#6

Hummsan.. Borde funka...


#include <windows.h>

...

void setPos(int x, int y)
{
	HANDLE hConsole;
	COORD position;
	
	hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
	position.X = x;
	position.Y = y;

	SetConsoleCursorPosition(hConsole, position);
}
Medlem sedan sep. 2001269 inlägg
#7

Jag kör Win 98, har PII 400 Mhz.
Programerar i DEV C++

Phorpher: Jag förstår inte hur din fuktion används.

Jag har testat att köra en cout sen funktionen och sen en cout till.
Det gav ingen effekt.

Okej, inlineasm?

Medlem sedan feb. 20002 300 inlägg
#8

Vad skickar du in för värden till min funktion då?


setPos(10, 10);
cout << "GURKA";
setPos(15, 15);
cout << "TOMAT";
Medlem sedan sep. 2001269 inlägg
#9

Hmm...

Det funkade.

Jag körde.

cout<<"HEJ";
setPos(100, 100);
cout<<"HEJ";
Medlem sedan apr. 20003 971 inlägg
#10

Konsolen är 80x25 tecken som standard i Windows och DOS.

Högsta värde är alltså 79 och 24 (bredd och höjd).

256 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)