Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Charcan en 16 Julio 2016, 23:06 PM

Título: Archivo de texto a un vector
Publicado por: Charcan en 16 Julio 2016, 23:06 PM
estoy intentando correr mi codigo solo para ir probando lo que tengo, la cosa esta en que se cierra al ejecutar, intente mostrar por pantalla lo que se captura en el vector pero no concuerda con el archivo de prueba..

Me podrian ayudar ? muichas gracias !


Source....................................................................................

#include "leer.h"
#include <iostream>


using namespace std;

void main()
{
Leer L;
char contenido[1000];
*contenido=L.cargar();

cout<<L.numeros(contenido);




system("pause");

}



Leer.cpp.......................................................................
#include "leer.h"
#include <iostream>
#include <fstream>


using namespace std;

  char Leer :: cargar()//cargando el archivo
{

cout << "Arrastre a la pantalla el archivo a analizar" << endl;
cin >> archivo;
system("cls");
ifstream fin(archivo);

if (!fin.fail())
{
int i =0;
while(!fin.eof())
{

fin>>contenido[i];
i++;
}
}
else
{
cout<<"Error al abrir archivo"<<endl;
system ("pause");


}
return *contenido;
  }

  int Leer :: numeros(char contenido[1000])//determinamos si son numeros
  {
for (int i=0;i<1000;i++)
{
if (isdigit(contenido[i]))
{
cnum++;
}
}
return(cnum);
  }

  int Leer :: palabras(char contenido[1000])//determinando si son palabras
  {
for (int i=0;i<sizeof(contenido);i++)
{
if (isspace(contenido[i]))
{
cpalabra++;
}
}
return(cpalabra);
  }

  int Leer :: letras(char contenido[1000])//determinamos si es letra
  {
for (int i=0;i<sizeof(contenido);i++)
{
if (islower(contenido[i])||isupper(contenido[i]))
{
calpha++;
}
}
return(calpha);
  }

  int Leer :: cespecial(char contenido [1000])//caracteres especiales, puntos comas etc
  {
for (int i=0;i<sizeof(contenido);i++)
{
if (!isalpha(contenido[i]))
{
cother++;


if (contenido[i] == ',')
{
ccoma++;

}

if (contenido[i] == '.')
{
cpunto++;
}

if (contenido[i] == ':')
{
cdospuntos++;
}

if (contenido[i] == ';')
{
cpuntoycoma++;
}


}

}
  return(cother,ccoma,cpunto,cdospuntos,cpuntoycoma);
  }
 
  void Leer :: mostrar()//mostramos en pantalla todos los datos requeridos (esta asi de manera temporal)
  {
 
  cout << "numero de comas es :" << ccoma << endl;
  cout << "numero de punto es :" << cpunto << endl;
  cout << "numero de los dos puntos  :" << cdospuntos << endl;
  cout << "numero de punto y coma es :" << cpuntoycoma << endl;
  cout << "numero de caracteres con espacios en blacos es :" << cpalabra+cnum + cother + calpha-1 << endl;
  cout << "la ubicacion del archivo es :" << archivo << endl;

system("pause");
  }

Leer.h.......................................................................................
#ifndef _LEER_H __LEER_H
#define _LEER_H
#include <iostream>
#include <fstream>
#include <cctype>


using namespace std;


// Declaración de la clase
 typedef class Leer
{
 //Atributos
             private:
             
 int cpalabra;
 int cnum;
 int cother;
 int cchar;
 int ccoma;
 int cpunto;
 int cpuntoycoma;
 int cdospuntos;
 int calpha;
 char next;
 char archivo[1000];
 

 //Métodos
             public:
 
              char cargar();
  int numeros(char contenido[]);
  int palabras(char contenido[]);
  int cespecial(char contenido[]);
  int letras(char contenido[]);
  void mostrar();
  char contenido[1000];
}Tleer;
#endif /*__LEER_H */
Título: Re: Archivo de texto a un vector
Publicado por: engel lex en 17 Julio 2016, 09:08 AM
usa el debugger de tu compilador a ver donde está fallando, si no sabes aun como usarlo seguro google y youtube te resuelven, es bastante fácil
Título: Re: Archivo de texto a un vector
Publicado por: class_OpenGL en 17 Julio 2016, 16:08 PM
Sinceramente, se me escapan demasiados aspectos de la lógica de este programa, pero intentaré mostrar lo que me parece que te pasa:
Código (cpp) [Seleccionar]
int Leer::numeros() { //determinamos si son numeros
for(int i=0; i < caracteres_leidos; i++) {
if(isdigit(this->contenido[i])) // El this-> no es obligatorio
cnum++;
}
return(cnum);
}

Es posible que haya más errores que yo no haya visto, pero al menos aclaro algunas dudas
Título: Re: Archivo de texto a un vector
Publicado por: Charcan en 17 Julio 2016, 19:48 PM
Gracias intentare seguir sus consejos! les av¡so si me funciona!