Dev - C++ - Archivo de Texto en vector

 
Vista:

Archivo de Texto en vector

Publicado por Anthony (1 intervención) el 16/07/2016 21:27:41
Buenas, al intentar probar el código se cierra el programa, alguna idea de como arreglarlo ? se que hay algunas inconsistencias pero estoy tratando de que funcione




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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#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.......................................................................
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#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.......................................................................................
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#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 */
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder