Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Error en Programa

Estas en el tema de Error en Programa en el foro de C/C++ en Foros del Web. Hola! quisiera saber porque este codigo truena cuando ingreso el nombre del archivo. Gracias por su ayuda #include <iostream.h> #include <conio.h> #include <ctype.h> #include <string.h> ...
  #1 (permalink)  
Antiguo 03/03/2014, 20:42
 
Fecha de Ingreso: marzo-2014
Mensajes: 1
Antigüedad: 10 años, 1 mes
Puntos: 0
Error en Programa

Hola! quisiera saber porque este codigo truena cuando ingreso el nombre del archivo.
Gracias por su ayuda


#include <iostream.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
void cortar(char linea [50])
{
char lin[50];
strcpy(lin,linea);
char *token=strtok(lin," ");
if(strcmp(token,"mkdir")==0)
{
cout<<"Se creo directorio" <<endl;
}
if(strcmp(token,"mkfile")==0)
{
cout<<"se creo archivo"<<endl;
}
if(strcmp(token,"type")==0)
{
cout<<"Se mostro"<<endl;
}
if(strcmp(token,"dir")==0)
{
cout<<"Directorio"<<endl;
}
if(strcmp(token,"cd")==0)
{
cout<<"open"<<endl;
}
if(strcmp(token,"cd..")==0)
{
cout<<"Regresar"<<endl;
}
}

void main()
{
FILE *f;
char nomb[20];
char linea[100];
cout<<"Ingrese nombre del archivo\n";
gets(nomb);
f=fopen(nomb,"w+");
if(f==NULL)
{
cout<<"No se puede abrir el archivo\n";
}
while(!feof(f))
{
fgets(linea,50,f);
cortar(linea);
}
fclose(f);
getch();
}
  #2 (permalink)  
Antiguo 03/03/2014, 21:37
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: Error en Programa

para que la gente te ayude usa el Highlight, elije el lenguaje que usas.
Cosas como sistema operativo y errores que te tira también son importantes.
Hay muchos errores pero los que ni siquiera puedes arrancar suponiendo que es cpp lo que usas es que iostream no lleva h y te falta el una linea using namespace std; luego al fin de los includes.

la funcion principal esta definida como void y el estándar es int main() y no te olvides poner return 0; al final del cuerpo.
Eso es solo para poder arrancar el programa, después te queda arreglar el desastre de los ficheros y to el rollo XDD
Mesclas c con cpp, menudo desastre cataclismico XDDDD
Mejor usas o c o cpp, si usas cpp las librerías son otras y hay otras formas de hacer eso.
Decídete en que lado estas por que estar en medio no te va favorecer.
Suele pasar cuando das poca información...te podemos ayudar muy poco.
Echa un ojo ahi en esa pagina si es para c, si es para cpp te aconsejo que te pasas por una pagina llamada minidosis que se trata de cpp, allí seguro con un poco de practicas encontraras todo lo referente al tema de ficheros.

Con lo que te dije antes puedes llegar a arrancar el programa, a ver si así lo arreglas ;)

Última edición por vangodp; 03/03/2014 a las 22:25
  #3 (permalink)  
Antiguo 04/03/2014, 06:28
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 10 meses
Puntos: 73
Respuesta: Error en Programa

Además de lo que te ha dicho vangodp, resulta que al abrir el fichero haces

f=fopen(nomb,"w+");

El modo de apertura corresponde a

truncate to zero length or create text file for update

(está tomado directamente de la ayuda del compilador Lcc-Win32, pero es igual para los demás compiladores C). Esto significa que al abrir el archivo con ese modo, su longitud se trunca a cero (es decir, se pierde su contenido anterior, si lo había). A partir de ahí, pues estás intentando leer de un archivo vacío. Abre el archivo en modo "r" ó "r+" (y asegúrate de que no está vacío).

Esta es la causa más probable. Como ya se te dijo también, además del código que no funciona debes postear los errores que te tire la máquina. Eso ayudará a acotar el error, por muy buenos que seamos no somos adivinos.

Saludos,

Etiquetas: programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:52.