Dev - C++ - Convertir Char a Int

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 8 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Convertir Char a Int

Publicado por Sebastian (1 intervención) el 11/01/2021 21:37:13
Hola chicos, necesito de su ayuda.
Estoy desarrollando un programa donde debo sacar datos de un archivo, ya sean letras, numeros o simbolos y acomdarlos dependiendo de su valor. Pero llevo horas intentandolo y no puedo porque necesito convetir los simbolos y letras a su equivalencia en ASCII para poder acomodarlos pero simplemente no puedo, ayuda!!!



Les dejo mi codigo, gracias. :D

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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <time.h>
#include <string>
using namespace std;
 
 
 
int i=0, j=0, k=0, l=0, w=0;
int guardacn;
int temp;
int cn;
clock_t t_ini, t_fin;
double secs;
int cont=0;
int izq=0, der=0, auxiliar=0, pivote=0, temporal=0;
int ban=0;
 
string nombrearchivo;
string nombrearchivo2;
 
FILE *archivo2;
struct Registro{
	int valor;
}registro;
 
int arreglo [100];
int salvacn;
 
struct Entrada {
	int valor;
} entrada;
 
void quickSort (int arreglo[], int limite_izq, int limite_der);
 
 
 
int capturaDatos(){
	int i = 0;
	int res;
 
	FILE *archivo1;
    string valorInt;
    cout<<"\n Teclea el nombre del archivo de entrada:   "<<endl;
	cin >> nombrearchivo;
	nombrearchivo+= ".txt";						 	      	    // Se agrega la extension ".txt"
	archivo1 = fopen(nombrearchivo.c_str(), "r");		        // Abrimos archivo
	if(archivo1== NULL ){
		cout<<" No se puede abrir el archivo "<<endl;
		exit(1);
	}else{
		cout<<" Se abrio el archivo "<<nombrearchivo.c_str() <<"  correctamente "<<endl;
    }
    cn=0;
    for (int i=0; !feof(archivo1); i++) {
    	res= sizeof (arreglo[i]);
 
    	if(res == 2){
        fscanf (archivo1, "%i", &entrada.valor);
        arreglo[i]=entrada.valor;
        cn++;
        }
 
        if(res == 1){
        fscanf (archivo1, "%i", &entrada.valor);
        arreglo[i]=entrada.valor;
        cn++;
        }
	}
 
	cn--;
	cout<<"El total de datos en el archivo son  " <<cn<<endl;
	salvacn=cn;
	fclose(archivo1);
}
 
 
 
//Llama en general a una funcion de ordenamiento, en este caso a la función de quickSort
void Ordenamiento() {
	int n;
	cout<<"\nNumeros originales a ordenar\n";
	for (w=0; w<cn; w++){
      	cout<<arreglo [w]<< "   ";
	}
	n=cn;
 
    quickSort (arreglo, 0, n-1);
 
	cout<<"\n\n\nNumeros ordenados por el metodo QuickSort\n";
	for (w=0; w<cn; w++){
      	cout<<arreglo [w]<< "   ";
	}
	cout<<"\n\n Tiempo de ordenamiento por el metodo de Quick Sort :  ";
}
 
void quickSort (int arreglo[], int limite_izq, int limite_der){
 
    izq = limite_izq;
    der = limite_der;
 
    pivote = arreglo[(izq + der)/2];
 
    do{
        while (arreglo [izq] < pivote && izq < limite_der){
        	izq++;
		}
 
        while (pivote < arreglo[der] && der > limite_izq){
        	der--;
		}
 
        if (izq <= der){
            temporal = arreglo[izq];
            arreglo[izq] = arreglo[der];
            arreglo[der] = temporal;
            izq++;
            der--;
        }
    }while(izq <= der);
 
    if(limite_izq < der){
		quickSort(arreglo, limite_izq, der);
	}
    if(limite_der > izq){
		quickSort(arreglo, izq, limite_der);
	}
}
 
 
 
int GenArc(){
	srand (time(NULL));        					 		// initialisa random semilla
	printf("\n Teclea el nombre del archivo a generar:   ");
	cin >> nombrearchivo2;
	nombrearchivo2+= ".txt";						 		// le agregarmos la extension ".txt"
 
	archivo2 = fopen(nombrearchivo2.c_str(), "w");		// Abrimos archivo
 
	if(archivo2== NULL ){
		printf(" No se pudo generar el archivo ");
		exit(1);
	}
	else{
		printf(" Se genero y abrio el archivo correctamente %s\n ", nombrearchivo2.c_str() );
    }
    for(i=0; i<salvacn; i++){
			registro.valor = arreglo[i];
		    fprintf(archivo2, "%i\n", registro.valor);
	    }
	fclose(archivo2);
  	return (0);
}
 
 
//*** Funcio main ()
int main() {
        capturaDatos();                 // lee y guarda los datos en una lista
        t_ini = clock();                // guarda tiempo inicial (antes de ordenar)
 
        Ordenamiento( );                //Llama al metodo de ordenamiento
 
        t_fin = clock();			    // guarda tiempo final (despues de ordenar)
 
                                               // Imprime el tiempo que se tardo el metodo en ordenar los datos
        secs = (double)(t_fin - t_ini) / (double)CLOCKS_PER_SEC; // determina los milisegundo utilizados
        printf("%.16g milisegundos", secs * 1000.0);   // imprime el tiempo utilizado
        cout<<"\n\n";                          // se utiliza printf porque es una sentencia mas poderosa que cout
 
        GenArc();
 
					                           // permite ver cantidades muy pequeñas o muy grandes
        return 0;
}
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