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

#261
Yo entiendo, aunque si tuvieses una forma de manejar la primera situacion me gustaria saber, como el gets(), que cuando le pasas por parametro el tamaño de la cadena y el usuario escribe de mas, la funcion solamente tomara hasta el maximo que le indicaste, aunque en este caso creo q hace lo mismo y cuando va al segundo cin.getline(), lo omite, y tampoco puedo hacer algo del tipo 


while(getchar() != '\n');


antes del segundo cin.getline(), por eso quisiera saber una forma de poder solucionarlo de la forma en que lo presente, y sino, bueno tendre que hacerlo de la forma en que dijiste.
#262
Ok, pero la cuestion esta en que si el usuario no hace caso e introduce una cadena mayor al limite que le coloque, cómo haria para manejar esa situacion y no me de error.
#263
La primera solucion que propones no la veo muy satisfactoria, es facil agregar


cin.getline(str1, 1000000000000,'\n');


pero se ve "anti-programador" tener eso asi xD.
Me gustaria una especie de codigo que pueda manejar ese exceso de la cadena.

Probare la segunda solucion.

#264
No soy tan experto como uds pero siguiendo la regla del cifrado de Cesar logre hacer mi codigo asi:


#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(){
   char oracion[100];
   char codificado[100];
   int i, desp;
    for(i = 0; i < 100; i++)
        codificado[i] = '\0';
   printf("Ingrese una oracion para cifrar:\n");
   fgets(oracion, 100, stdin);
   do{
       printf("Ingrese el numero de desplazamientos en el abecedario: ");
       scanf("%d", &desp);
       if(desp > 27)
           printf("El desplazamiento no puede ser mayor a 27\n\n");
   }
   while(desp > 27);
   for(i = 0; i < strlen(oracion); i++){
       if(oracion[i] >= 65 && oracion[i] <= 90){
           if(oracion[i] + desp > 90)
               codificado[i] = (oracion[i] - 90) + desp + 64;
           else
               codificado[i] = oracion[i] + desp;
       }
       else{
           if(oracion[i] >= 97 && oracion[i] <=122){
               if(oracion[i] + desp > 122)
                   codificado[i] = (oracion[i] - 122) + desp + 96;
               else
                   codificado[i] = oracion[i] + desp;
           }
           else
               codificado[i] = oracion[i];
       }
   }
   printf("La oracion codificada es: %s", codificado);
   getchar();
   return 0;
}


EDIT: Olvide inicializar el array "codificado"  ;D
#265
Programación C/C++ / Problema con cin.getline
23 Agosto 2013, 02:10 AM
Hola de nuevo, mi nuevo problema es con la funcion que nombre en el titulo, y bueno el codigo es este:


#include<iostream>

using namespace std;

int main()
{
    char str1[5], str2[5];
    cout << "Introduce una frase: ";
    cin.getline(str1, 5, '\n');
    cout << "Tu frase es: " << str1;
    cout << endl << "Ingrese otra frase: ";
    cin.getline(str2, 5, '\n');
    cout << endl << "Tu frase es: " << str2 << endl;
    cin.get();
}



Como podran ver, el programa funcionara mal si el usuario introduce una cadena mayor a 4, y queria saber si me podrian ayudar con una solucion a eso.

Gracias
#266
Programación C/C++ / Re: Libreria C++
22 Agosto 2013, 21:16 PM
Muchas gracias amchacon  ;D
#267
Programación C/C++ / Re: Libreria C++
22 Agosto 2013, 21:15 PM
Hola, estoy en C:/Archivos de programa/CodeBlocks/MinGW/include

Y solamente veo carpetas llamadas, ddk, gdb, gdiplus, GL, sys, pero ninguna llamada C++, revise en cada una pero no encuentro alguna carpeta llamada C++  :-\

#268
Programación C/C++ / Libreria C++
22 Agosto 2013, 20:30 PM
Hola, disculpen esta pregunta tonta, pero alguno sabe donde puedo conseguir una lista de las librerias que sean propias de C++? Todo lo que encuentro son las estandar ANSI C, yo lo que quiero saber es la lista donde se encuentran por ejemplo la <iostream>, <cstring>, etc. Gracias.
#270
Hola, es mi primer post y mi problema es que haciendo una multiplicacion de matrices no entiendo porque la funcion no envia los datos correcto a la funcion del main, este es mi codigo:

#include <stdio.h>
#include <conio.h>
#define N 2

int agregarValores();
int multiplicarMatriz(int matriz1[N][N], int matriz2[N][N]);

main(){
    int m1[N][N], m2[N][N], m3[N][N], fil, col;

    printf("Matriz 1:\n");
    m1[N][N]=agregarValores();
    printf("\nMatriz 2:\n");
    m2[N][N]=agregarValores();
    m3[N][N]=multiplicarMatriz(m1, m2);
    printf("\nEl resultado de la matriz es:\n\n");
    for(fil=0;fil<N;fil++){
        for(col=0;col<N;col++){
            if(col==0)
                printf("\n");
            printf("%d ", m3[fil][col]);
        }
    }
    getch();
}

int agregarValores(){
   int fil, col, matriz[N][N];
   for(fil=0;fil<N;fil++){
       for(col=0;col<N;col++){
           printf("\nFila %d, Columna %d = ", fil+1, col+1);
           scanf("%d",&matriz[fil][col]);
       }
   }
    return matriz[N][N];
}

int multiplicarMatriz(int matriz1[N][N], int matriz2[N][N]){
    int fil, col, k, acu, matriz3[N][N];
    for(fil=0;fil<N;fil++){
        for(col=0;col<N;col++){
            for(k=0;k<N;k++){
                matriz3[fil][col]+=matriz1[fil][k]*matriz2[k][col];
            }
        }
    }
    return matriz3[N][N];
}


Gracias de antemano