Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - snoopty

#11
Buen consejo
#12
Gracias. Deduzco entonces que IOSTREAM incluye a LOCATIONS, pues me sucedió lo mismo que con CCTYPE en lo referente a ALGORITHM
#13
Cita de: Eternal Idol en  4 Diciembre 2021, 09:42 AM
Estas trabajando con objetos y al sumar una cadena y un caracter se llama a un operador + sobrecargado que se encarga de hacer el trabajo necesario para agregar un caracter en una cadena.

https://en.cppreference.com/w/cpp/string/basic_string/operator%2B

Tu codigo es equivalente a:
Código (c++) [Seleccionar]
numeros = std::operator+(numeros, alfanumerico [a]);





Gracias !!!!
( Y lo de la Librería cctype ? )
#14
Programación C/C++ / Duda en una Línea de Codigo
4 Diciembre 2021, 06:25 AM
En el Codigo que dejo más abajo me sucede que
La línea ( análoga a la de " texto = .... " )
" " numeros = numeros + alfanumerico [ a ] ; " "
la única manera en que la entiendo ( más allá del mi comentario al lado ) es pensandola como un contador tipo " i = i + 1 ( 1 sería el prox Nro que encuentre ) "
....... Si pensarlo así está mal o bien, igualmente lo que no me cierra del todo es el " + " que suma dos variables
pero que ambas no tienen afinidad absoluta entre sí - o sea no es que " numeros = 8 y alfanumerico [ a ] = 17 ; o sea,
pensándolo como tipo de Datos ....  ¡ string = string + char ( ? ) !!!! ( aunque sea cierto q la 2da variable sea un a
rray de la 1era - cuyo subíndice es el contador principal - ) ; ¿ Hay otra forma más clara de entenderlo ? (( X otra parte, si me explicarían porqué puedo prescindir de declarar la biblioteca CCTYPE - función isdigit - ..... pues si no la declaro el Codigo funciona igual ( ? ) ))

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstdlib>
#include <cctype>
using namespace std;

char alfanumerico[100];


string numeros;

string texto;


int main( )
{

int a = 0;


cout << "Ingrese N\243meros y Letras MEZCLADOS :" << endl;

cin >> alfanumerico;

// " a " va a referir a cada uno de los Elementos del 'Array', desde el " [0] ",
// hasta el último que se ingrese " [ ' n ' ] "
while ( a < ( sizeof ( alfanumerico ) - 1 ) ) // Que se evalúe la existencia, desde
                                              // lo cuantitativo, de  un Elemento
                                              // del 'Array' que sea menor al
                                              // tamaño total del 'Array'
{

if ( isdigit ( alfanumerico [a] ) )
{

numeros = numeros + alfanumerico [a]; // "  Viene a ser como un ''' i = i + 1 '''  "
                                      // Si en el 'Array' ya había un Nro, que éste
                                      // se almacene y busque el próximo para
                                      // también almacenarlo en la Var " numeros "

}
else
{

texto = texto + alfanumerico [a];     // Si en el 'Array' ya había una Letra, que ésta
                                      // se almacene y busque la próxima para
                                      // también almacenarla en la Var " texto "


}

a ++;

}

cout << "Los N\243meros son :" << numeros << endl;

cout << "Las Letras son :" << texto << endl;


system ("pause");
}















#15
Gracias !!!
#16
No sé si estará relacionado con este mensaje de error, pero me está pasando que los Codigos se me ejecutan dos veces; este mensaje me aparece después de la 1er o 2 da ejecución, a veces azarosamente ..... últimamente a cada rato. Otra cosa que me sucede es que al complilar se me genera siempre un archivo .o - seguramente de object -, lo cual no m,e sucedía ni con Dev c ++ 5.11 ni con Dev C ++ Embarcadero ( quizás sí los generaba y los guardaba en alguna carpeta )
Aqu{i, el mensaje de ERROR. Si pueden orientarme, muchas gracias !

E:\Development\wxWidgets-3.1.3\include/wx/longlong.h(182): assert "(m_ll >= (-0x7fffffffL-1L)) && (m_ll <= 0x7fffffffL)" failed in ToLong( ): wx LongLong to long conversion loss of precision
#17
En realidad, a partir de este Programa se han comenzado a repetir 2 veces la ejecución de todos los demás ......Y otra cosa,  no sé aún porqué puedo prescindir de declarar la Librería CCTYPE si
igualmente funciona el Código para ese fin. ( IDE : CODEBLOCKS 20.03  )
Código (cpp) [Seleccionar]
#include <iostream>
#include <cstdlib>
#include <cctype>
using namespace std;

char alfanumerico[100];


string numeros;

string texto;


int main( )
{

int a = 0;


cout << "Ingrese N\243meros y Letras MEZCLADOS :" << endl;

cin >> alfanumerico;

// " a " va a referir a cada uno de los Elementos del 'Array', desde el " [0] ",
// hasta el último que se ingrese " [ ' n ' ] "
while ( a < ( sizeof ( alfanumerico ) - 1 ) ) // Que se evalúe la existencia, desde lo cuantitativo, de un Elemento del 'Array'
                                             // que sea menor al tamaño total del 'Array'
{

if ( isdigit ( alfanumerico [a] ) )
{

numeros = numeros + alfanumerico [a]; // Si en el 'Array' ya había un Nro, que éste
                                     // se almacene y busque el próximo para
                                     // también almacenarlo en la Var " numeros "

}
else
{

texto = texto + alfanumerico [a];     // Si en el 'Array' ya había una Letra, que ésta
                                     // se almacene y busque la próxima para
                                     // también almacenarla en la Var " texto "


}

a ++;

}

cout << "Los N\243meros son :" << numeros << endl;

cout << "Las Letras son :" << texto << endl;


system ("pause");
}















Gracias x leer el mensaje.

#19
1 ) Respecto de tu PD : mi inquietud iba por otro lado; yo asumía erráticamente que cambiando los valores de una misma Variable debería de obtener diferentes Direcciones de Memoria, lo que corroboré que no es así .....
(( pero Igualmente entiendo lo que explicaste, y es altamente valorable !!!!! ))

2 ).... pues ahora con otro ejemplo he visto que la memoria direccionada a partir de un puntero " afecta " sólo a la variable, independientemente del valor que se cambie, es decir, x + q yo cambie 80 x cualquier otro valor siempre el código me devolverá la Dirección Física de la Variable; sólo en el caso de que defina otra variable global, valiéndome de un mismo puntero // no haciendo falta definir otro // direccionador para ambas variables, obtendré, ahora sí, dos Direcciones de Memoria Física diferentes ( lo constato más aún si a a ambas variables les asigno el mismo Valor )
#20
Los comentarios los pongo yo; la Dirección de Memoria correspondiente a 80 debería de ser " 0X4b8000 " .... por otra parte, como pongo en el título, si en vez de 80, a éste lo reemplazo por 50, 30, 15, 10, etc, luego de compilar SIEMPRE ME DEVUELVE como Dirección de Memoria " 0X404004 " .... no debería a caso tener cada Número ( " Valor " en el título ) una Dirección de Memoria diferente ???
Por todo esto es que hago la consulta.