Ho un piccolo problema, mi servirebbe creare un semplice text editor che leggesse e salvasse (su file / in memoria / o dove zz volete) tot (+ sono meglio è) caratteri inseriti da tastiera.
Le opzioni sarebbero Esc = uscita / Enter=a capo / Backspace=Cancella.
Fino alla cancellazione delle righe su una sola schermata ci sono poi.....![]()
Se avete qualche consiglio, tipo utilizzare altro al posto di una matrice 80X60......
Ve lo passo pronto per l'esecuzione...
#include <conio.h>
void main(void){
#define Maxrighe 60
unsigned char v[80][Maxrighe],x=0;
unsigned int y=0,r=-25;
for(;y<Maxrighe;y++)
for(;x<80;x++)
v[x][y]=0;
y=0; x=0;
do{
if(x==80){x=0;y++;}
if((y%25==0)&&(x==0)){clrscr(); r+=25;}
gotoxy(x+1,y+1-r);
v[x][y]=getch();
if ((v[x][y]!=27)&&(v[x][y]!=13)&&(v[x][y]!=8)){gotoxy(x+1,y+1-r); putch(v[x][y]); x++;}
if(v[x][y]==13){y++; x=0;}
if(v[x][y]==8)
{
if (x>0){putch(v[x][y]); v[x][y]=0; x--;}
else
{
if((y>0)&&(y%25!=0))//Se cancello nella stessa schermata
{
putch(v[x][y]);
for(char tem=0;tem<80;tem++)
v[tem][y]=0;
y--;
for(char rd=0;(v[rd][y]!=13)&&(rd<79);rd++);
x=rd;
if (x==79){gotoxy(80,y-r);putch(' ');}
}
if((y>0)&&(y%25==0))//Se cancello tutta la prima riga di una schermata diversa dalla prima
{
clrscr();
for(unsigned int j=(r-24);j<y;j++)
for(unsigned char k=0;k<79;k++)
if (v[k][j]>31){gotoxy(k,j);putch(v[k][j]); x=k;}
y=24; r-=25;
}
}
}
}while((v[x][y]!=27)&&(y<Maxrighe));
}
//Grazie!![]()