Editor en c

Que tal bueno mi duda es la siguiente, he intentado hacer un programa tipo editor de texto, pero mi primer problema es que solo me le el arreglo me deja escribir 1 linea y media y si sigo escribiendo se traba, a no ser que antes le de un ENTER, quisiera saber como hacer que detecte un salt de linea a los 80 caracteres y que se guarde en un archivo txt de nombre especifico...
Otra duda que no se si se pueda en C, es que si ya hemos escrito por ejemplo 5 lineas, con las teclas de cursos podamos desplazarnos a renglones anteriores con dichas teclas, por tu atención gracias
Te añado el código fuente
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
void main (void)
{
FILE *archivo;
int i;
char linea[100];
archivo=fopen("texto.txt","a");
if(archivo==NULL)
{
printf("no se pudo abrir el archivo");
exit(1);
}
i=0;
clrscr();
printf("\t\tEscribe un texto\n");
while(i<=100)
{
printf(" ");
gets(linea);
if((linea[0]=='Q'|| linea[0]=='q') && (linea[1]=='U' || linea[1]=='u')&& (linea[2]=='I'||linea[2]=='i' )&& (linea[3]=='T'|| linea[3]=='t'))
break;
fputs(linea,archivo);
fputc('\n', archivo);
i++;
}
fclose(archivo);
}

1 respuesta

Respuesta
Cambia tu código en la condición de recibir el texto, si trabajas en consola esta limitado a 255 caracteres (bytes), muy aparte de la cantidad de columnas que ofrezca la shell, en particular Linux tiene shells de distintas cantidades de columnas, el algoritmo debe ser de obtener "carácter a carácter" y ordenar en una variable limitado al numero de columnas, o si deseas almacenar todos los caracteres y después dar el formato deseado, acuérdate que es una programación orientado a objetos, la shell no es un editor de texto sino que es un interprete de comandos, la forma en la que dijitas es una forma sencilla de ingresar los comandos que simula escribir un texto, recuerda ingresar el texto Enter también en las variables, como indicador de salto de linea, y sugiero utilizar teclas como Ctrl o alt para poder escapar del modo editor de texto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas