Hola compañero, gracias por tu respuesta, bueno si logre corregir el problema comparando si char[N] esta vacio,
...
Si, tienes razon en cuanto coloco como primer caracter el punto, ya no se puede salir del programa, pero lo arregle con un bucle while, en lugar de un do while,...
Bueno ahora no finaliza la edicion del texto cuando presiono el punto, solo si presiono el punto despues de una linea vacia, Intente tambien comparando la variable char texto si era igual a . pero alli si surge el problema de nuevo que cuando coloco . como primer caracter ya no se sale del programa, ¿Es posible corregirlo?, de serlo ¿Como podria?
Saludos!
PD
Adjunto codigo:
Código C++:
Ver original#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <fstream.h>
#include <string.h>
#define AL 10
int main()
{
ofstream doc;
int c;
char texto[1000];
doc.open("datos.txt");
cout <<"/Introduzca el texto/" <<endl;
cout <<"Para Finalizar la edicion, introducir un punto " << endl;
while (c != '.')
{
cin.getline (texto, 1000);
{
c = _getch();
}
doc << texto <<endl;
}
cout << "Fin de la edicion de Texto" <<endl;
return 0;
}
Nuevos Datos Agregados:
Esto es lo que tengo hasta ahora;
Dejo el codigo, para que pueda servir a cualquiera que como yo este en fase Alfa XD (ni al primer nivel en C++ llego)
PD. Creo que me gusta bien como esta, asi que tenga que escribir el punto despues de una linea en blanco, asi es mas delimitante cuando ya no se quiere escribir mas,...
Pero siempre sigo con la duda del porque, agradezco me puedan explicar...
Saludos
Otra Post Data:
El codigo que escribo quiza no cumpla estandares, pero es lo que se me ocurre, ¿Hay alguna forma mas "Estandar" o Tecnica de escribirlo?
Código C++:
Ver original#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include <fstream.h>
#define SALTO_LINEA 10
char *Opciones[]={" [1] Sobreescribir ",
" [2] Agregar Texto ",
" [3] Leer Archivo ",
" [4] Salir "};
//****************************************************************************
//****************************************************************************
void Sobreescribir()
{
ofstream doc;
int c;
char texto[1000];
doc.open("datos.txt");
gotoxy (1,16); cout <<"Se va a editar el archivo ""datos.txt" << endl;
cout <<"Para Finalizar la edicion, introducir un punto despues de una linea vacia" << endl<<endl;
gotoxy (28,18);cout <<"////Introduzca el texto////" <<endl;
//while (strlen(texto) != '.')
while (c != '.')
{
cin.getline (texto, 1000);
{
c = _getch();
}
doc << texto <<endl;
}
cout << "Fin de la edicion de Texto" <<endl;
}
//****************************************************************************
//****************************************************************************
void AgregarTexto()
{
ofstream doc("datos.txt", ios::app);
int c;
char texto[1000];
gotoxy (1,16); cout <<"Se va a agregar texto al archivo datos.txt" << endl;
cout <<"/Introduzca el texto/" <<endl;
cout <<"Para Finalizar la edicion, introducir un punto despues de una linea vacia" << endl;
//while (strlen(texto) != '.')
while (c != '.')
{
cin.getline (texto, 1000);
{
c = _getch();
}
doc << texto <<endl;
}
cout << "Fin de la edicion de Texto" <<endl;
}
//****************************************************************************
//****************************************************************************
void LeerTexto()
{
ifstream doc("datos.txt", ios::noreplace);
char linea[128];
long contador = 0L;
gotoxy (1,16); cout <<"Mostrando el archivo datos.txt " << endl << "Para una lectura mas comoda se muestran de 24 en 24 lineas" << endl;
if(doc.fail())
cerr << "Error al abrir el archivo Pruebas.txt" << endl;
else
while(!doc.eof())
{
doc.getline(linea, sizeof(linea));
cout << linea << endl;
if((++contador % 24)==0)
{
cout << "CONTINUA...";
cin.get();
}
}
cout << endl << endl << endl <<"-------------------------------" << endl;
cout << "Fin del contenido" << endl;
cout << "Precione cualquier tecla para continuar..." << endl;
doc.close();
}
//****************************************************************************
//****************************************************************************
void Resalta(int Y)
{
textcolor(RED);
textbackground(7);
gotoxy(30,7+Y); cprintf("%s",Opciones[Y-1]);
textcolor(BLUE);
textbackground(BLACK);
}
//****************************************************************************
//****************************************************************************
void RealizarOperacion(int Opc)
{
switch(Opc)
{
case 1: Sobreescribir(); break;
case 2: AgregarTexto(); break;
case 3: LeerTexto(); break;
}
}
//****************************************************************************
//****************************************************************************
int main()
{
char Opc;
int Y=1;
int i;
textmode(C80);//Sirve para que la consoloa cambie a modo texto con medida 80 x 25
do
{
textcolor(GREEN);
textbackground(BLACK);
clrscr();
gotoxy(30,5); cprintf("*** OPCIONES ***");
for(i=0; i<4; i++)
{
gotoxy(30,8+i); cout << Opciones[i];
}
Resalta(Y);
switch(Opc) //claves: 72=>flecha arriba 80=>flecha abajo 13=>Enter.
{
case 72: if(Y==1) Y=4; else Y--; break;
case 80: if(Y==4) Y=1; else Y++; break;
case 13: RealizarOperacion(Y);
}
}while(1);
}