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

#1531
He visto que usas "cin>>" en algunos puntos. Hay unt ema importante.
"cin>>" coge de la entrada caracteres hasta X punto. Si tú introduces "78456\n", va a leer el entero 78456 (en caso de que hagas "cin>>int" claro). El "\n" ese va a quedar en el buffer. Esto implica que la siguiente llamada a getline va a leer hasta el "\n", es decir, nada. Siquiera va a pedir entrada por teclado.

Visto el aspecto técnico, hay formas de arreglarlo:
[ul]
  • Colocar después de cada "cin>>" un cin.ignore() para que ignore el salto de línea. Si no te fuera, podrías poner "cin.ignore(2), para que ignore 2 caracteres (por si acaso, vaya)
  • No utilizar "cin>>". Sé que es práctico, pero este es un problema común. La opción, sería leer siempre con getline, y si necesitas interpretar un entero, podrías poner:
Código (cpp) [Seleccionar]
string t;
getline(cin, t); // Leemos el número. Ej: 542
int n = stoi(t); // Convertimos string a int

La función stoi: http://www.cplusplus.com/reference/string/stoi/
También tienes para convertir a float: stof
#1532
Empezando por getline: http://www.cplusplus.com/reference/string/string/getline/
Código (cpp) [Seleccionar]
getline(istream& is, string& str);
Guarda lo leído hasta el salto de línea (o hasta el delimitador, si se lo pones). Lo guarda en el segundo parámetro.
El primer parámetro, es un stream de entrada. Por ejemplo, cuando escribes en consola y pulsas enter, envías la cadena al streaming de entrada del programa ("cin" es un objeto que maneja el streaming de entrada por defecto)
Así pues, de forma resumida y usando tu ejemplo, le dices que lea de "cin", y lo deposite en "variable"

Luego, cin.getline, o más precisamente, el método getline de los objetos "istream", hace lo mismo que la función getline anterior, pero en este caso, los almacena en una cadena de tipo "char*", en vez de en una string. Si utilizas C++, salvo que sea necesario, te recomiendo usar la anterior: "getline(cin, t)"

Mientras que getline obtiene todos los caracteres hasta el delimitador, get obtiene solo 1 caracter.
Información más detallada, la tienes en http://www.cplusplus.com/reference/istream/istream/get/

No se recomienda el uso de getch puesto que no es estándar. Su función es devolver un caracter correspondiente a la siguiente pulsación de tecla (no requiere pulsar enter)
#1533
minidosis.org
No es C, es C++, que es parecido. Son videotutoriales. Puedes mirar el primero y ver si te gusta el estilo. El profeso explica cada línea, y cada paso que dá, además de dibujar los conceptos complicados.

En cuanto a C++, tiene lo que tiene C, más muchos añadidos y algún cambio.
#1534
Ese bucle while, no sé si es lo que querías, pero cuidado al poner las llaves {} en if y while. Te recomiendo que las pongas.

Luego, esta condición:
if(ch == ' ' && i > 0 && ch != ' ')
Cómo podría ser ch igual a ' ' y a la vez diferente a ' '? Replantea la condición.
#1535
Lo que comentas ya no es un tema de C++ como tal. Es un tema de, 1 de 2: o de uso de librerías gráficas, o de conocer algún formato de archivo de imagen.

Si te interesa crear imágenes, hay un formato muy simple, que es el formato PBM

Más información en wikipedia u otras fuentes, pero te diré: tiene 6 tipos. Los que más te pueden interesar es el 3 y el 6 (ambos con color RGB, uno ASCII y otro binario). Los otros tipos son blanco y negro o escala de grises.

Convertir una matriz de colores a este formato es muy sencillo, así que si quieres visualizar rápidamente los resultados, es un buen inicio. El mayor problema es que no todos los visualizadores de imágenes lo soportan. Sé que Photoshop sí lo soporta (supongo que GIMP y otros programas especializados también)


En cuanto a librerías gráficas se refiere, tienes la ventaja de mostrar el resultado directamente en pantalla. Y la conversión a archivo la suelen traer incluída de algún modo. Te puedo decir: SFML.
#1536
Siendo archivos, envía el archivo, y recíbelo en el otro lado. Al recibirlo, lo puedes depositar cómodamente en un archivo nuevo.
Para enviar, simplemente leelos (recuerda abrirlos en modo binario), y envía los datos por socket. Luego, según los recives, los colocas en un arhcivo. Ya luego, el método de envío, tú verás. Yo enviaría primero el tamaño del archivo, para que reciba lso bytes correctos.
#1537
Localiza la sentencia que tira el error. Para ello, ve poniendo "pivotes" en el código. Por ejemplo:
SENTENCIA1
printf("1-2\n");
SENTENCIA2
printf("2-3\n");
SENTENCIA3


No hace falta que pongas uno entre cada sentencia, desde luego. Ponlas en lugares etsratégicos, y localiza el error desde el main, hasta las funciones. Una vez sepas qué da el error, mira qué variables utiliza, y qué puede ser incorrecto.
#1538
Y dale con las guerras y las armas. No he dicho nada de guerras ni revoluciones armadas. Lo de llamada a las armas es una metáfora si lo quieres ver así.

PD: No es "cociente", es "consciente"
#1539
"Llamada a las armas" es una expresión. La utilizo en el sentido de que el mensaje tiene un aura de atracción a tu ideología, pretendiendo levantar a los que lo lean.

Todo ese mensaje lo has basado en la palabra "armas", fuera del contexto ._.
#1540
El problema no es que el sistema sea corrupto. El problema es que ves el sistema como algo corrupto, y no como lo que es. Es así y es menester tener la capacidad convivir y beneficiarse de ello. Si no te gusta, lucha en su contra, pero una llamada a las armas insultante de este tipo es cuanto menos deleznable.