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 - ivancea96

#901
Programación C/C++ / Re: [C++] Error con ficheros.
26 Noviembre 2016, 23:39 PM
Código (cpp) [Seleccionar]
string reemplazar(string linea) {
   //Nueva línea
   string nLinea = "";

   //Sustituyendo cada espacio en blanco con un guión bajo.
   for(unsigned int h = 0; h < linea.length(); h++) {
       if(linea[h] == ' ') {
           nLinea[h] += '_';
       } else {
           nLinea[h] += linea[h];
       }
   }

   return nLinea;
}


Código (cpp) [Seleccionar]
nLinea[h] += '_';
Ahí no le estás agregando el caracter a la cadena. Ahí le estás sumando '_' (su valor ascii) al caracter en la posición h (inexistente, de ahí el error).
Querrías poner:
Código (cpp) [Seleccionar]
nLinea += '_';
#902
Programación General / Re: Estudiar programacion
26 Noviembre 2016, 16:15 PM
Lo primero es aprender a programar. C++ es un muy buen lenguaje para ello.
Luego, tocará aprender expecíficamente los lenguajes que necesites para móvil o web.

En Web, por ejemplo, tendrás PHP, SQL, HTML, CSS, JS...

En móvil, pues depende.
- En Windows Phone, tendrás C#, VB, incluso JS (y otros).
- En Android, lo más extendido es Java.
- En iOS, Objective-C, por ejemplo.

En fin. La diferencia entre un lenguaje y otro es "mínima" una vez controles la programación.
En cualquier caso, yo de ti seguía con C++.
#903
Programación General / Re: Pasar Java. Pseint
26 Noviembre 2016, 16:07 PM
Eso te devuelve el caracter de la cadena en la posición x.
Con PSeInt creo que lo puedes hacer así (no sé si hay otras formas):
Subcadena(cadena, x,x)
#905
ASM / Re: Ensamblador
26 Noviembre 2016, 15:35 PM
FASM mismo te sirve (personalemtne, a la hora de programar ensamblador, el editor/compilador me parece lo de menos (salvando los detalles que cada compilador pueda tener))

Perdona que no de una respuesta directa, pero repsondí a esta hace poco y bueno:
https://foro.elhacker.net/programacion_general/libros_de_asm-t460514.0.html;msg2096607#msg2096607

No hablo de libros, pero bueno.
Lo bueno de ASM es que con saber los registros, los OpCode (al menos los básicos), las flags y poco más, ya tienes el concepto xD
#906
Pensad que cuando se compila un fichero objeto (de Datos.cpp, por ejemplo), se tieneque compilar la función. No puede compilar todas las combinaciones del template. Solo compila las que se están usando en ese momento.
Luego pues, el .cpp trata de utilizas un "typename P" que no ha sido compilado.
No lo puede compilar él porque no tiene el código.
La solución, como dice avesudra, compilar los templates cada vez que se necesiten poniéndolos en el header.
#907
El #include "preferencia.h" lo haces varias veces, en varios .cpp quizás?
#908
Una constante, no const.
Una constante es, por ejemplo, que pongas:
Código (cpp) [Seleccionar]
char var[56];
Ese 56 es una constante.

Para un vector dinámico, tendrás que trabajar con memoria dinámica:
C++:
Código (cpp) [Seleccionar]
char* devolverChar(int a) {
char *probando = new char[a];
return probando;
}


C:
Código (cpp) [Seleccionar]
char* devolverChar(int a) {
char *probando = (char*) malloc(sizeof(char) * a);
return probando;
}


Luego, tendrás que liberar al memoria que reservaste con new/malloc. Para ello, delete/free:
C++:
Código (cpp) [Seleccionar]
char* ret =  devolverChar(123);
// Aquí utilizas esa cadena todo lo que quieras...
delete[] ret; // Como son varias, ponemos delete[]. Si fuera solo 1, solo se pondría delete


C:
Código (cpp) [Seleccionar]
char* ret =  devolverChar(123);
// Aquí utilizas esa cadena todo lo que quieras...
free(ret);
#909
Al ternimar una función, todas sus variables locales "dejan de existir".

Si quieres que siga existiendo siempre (dentro de la función), las puedes declarar como static:

Código (cpp) [Seleccionar]
int nextValue(){
    static int n = 0;
    return n++;
}


Cada llamada sucesiva a la función, incrementará ese n.

Con respecto a los arrays, el funcionamiento es el mismo. Arrays, que no punteros apuntandoa  memoria dinámica.
#910
Generalmente, una llamada a new, al fallar, tirará una excepción del tipo bad_alloc:

Código (cpp) [Seleccionar]
#include <new>

try{
    int* arr= new int[100000000];
}catch (std::bad_alloc& exc){
    // Error aquí
}