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

#1131
Programación C/C++ / Re: Variable Char a BYTE
20 Febrero 2013, 22:35 PM
Las variables Byte no existen en C++, a ver si te estas confundiendo de lenguaje...

Por otro lado, lo que puedes hacer es transformar el valor hexadecimal en decimal y pasar dicho valor decimal a la función.
#1132
Toda la clase ifstream (incluyendo el operador >>):
http://www.cplusplus.com/reference/fstream/ifstream/

Y toda la clase ofstream:
http://www.cplusplus.com/reference/fstream/ofstream/

#1133
En C++ tira perfecto, creo que tiene que ver con las limitaciones de C y la pila.

Puedes crearlo dinámicamente y entonces si te irá:

/*Asignacion de valores en arreglos bidimensionales*/
#include <stdio.h>
#include <stdlib.h>

/*Prototipos de funciones*/
void imprimir_arreglo( const int** a);

/*Inicia la ejecucion del programa*/
int main()
{
 int i = 0;
 int** arreglo1 = (int**)malloc(3*sizeof(int*));
 
 for (i = 0; i < 3;i++)
       arreglo1[i] = (int*)malloc(2*sizeof(int));

 //int** arreglo2[2][3] = { {1, 2, 3},{ 4, 5, 6 }};
 //int** arreglo3[2][3] = { { 1, 2 }, { 4 } };

 printf( "Los valores en el arreglo 1 de 2 filas y 3 columnas son:\n" );
 imprimir_arreglo((const int**) arreglo1 );

 printf( "Los valores en el arreglo 2 de 2 filas y 3 columnas son:\n" );
 //imprimir_arreglo( arreglo2 );

 printf( "Los valores en el arreglo 3 de 2 filas y 3 columnas son:\n" );
 //imprimir_arreglo( arreglo3 );

 return 0;
}  /*Fin de main*/

/*Definiciones de funciones*/
void imprimir_arreglo( const int** a)
{
 int i;  /*Contador filas*/
 int j;  /*Contador columnas*/

 for (i = 0; i <=1; i++)
 {
   for (j = 0; j <= 2; j++)
   {
     printf( "%d ", a[i][j] );
   }

   printf( "\n" );
 }
} /*Fin de funcion imprime_arreglo*/
#1134
Programación C/C++ / Re: me salta el getline
20 Febrero 2013, 01:27 AM
Cita de: engelx en 19 Febrero 2013, 23:26 PM
acaso cin no permite espacios?
No, cada vez que pulsas la tecla "espacio" se da la lectura por terminada (como si pulsaras enter).

Por eso hay que usar getline

PD: Repito, no tienes que usar todos esos "using std::". Basta con que pongas uno genérico:

Código (cpp) [Seleccionar]
using namespace std;
#1135
Programación C/C++ / Re: Programa error
18 Febrero 2013, 19:14 PM
En donde defines la clase, pon esto en la primera línea:

Código (cpp) [Seleccionar]
#pragma once

De esta forma, te aseguras que solo se incluirá una vez el archivo (lo digo porque lo tienes incluido desde dos ficheros).
#1136
Programación C/C++ / Re: Programa error
18 Febrero 2013, 14:45 PM
En vez de usar tanto "using std::cout". Puedes resumirlo en un espacio genérico:

Código (cpp) [Seleccionar]
#include <iostream>
#include <string>
#include "cabezal.h"
using namespace std;

int main()
{
  //Variables:
  string tunombre;

  //Mensajes/funciones.
  cout << "Escribe tu nombre: ";
  getline (cin , tunombre);
  tunombrefuncion tunombrefuncion1 (tunombre);
  cin.get();
  return 0;
}


En cuanto al resto de código, yo lo veo correcto. Cuentanos que problema te da.

#1137
Varias cosas:

- No necesitas la librería matemática math.h. Las sumas, las restas y los productos ya están definidos en el lenguaje por defecto.
- Confundes estructuras con funciones.
- No hay un default en el switch, por lo que hay una posible fuente de errores.

Mi consejo es que repases un manual de C desde cero, te confundes en algunos principios básicos.
#1138
Cita de: leosansan en 17 Febrero 2013, 17:34 PMPor cierto, el uso de "while (getchar() != '\n' && getchar() != EOF);" es usualmente usado para limpiar el buffer "después" de una entrada, pero donde está no tiene como mucho sentido.[/size]  :rolleyes:
Cierto, habría que ponerlo despues del scanf. No antes.
#1139
Unas observaciones a ese código:

Código (cpp) [Seleccionar]
fflush(stdin);
Eso no es estándar, solo funcionará en Windows. Es una buena práctica usar las cosas lo más estándar posible, de esa forma funcionará en casi cualquier plataforma. Este es su equivalente:

Código (cpp) [Seleccionar]
while (getchar() != '\n' && getchar() != EOF);

Así mismo, en lugar de usar un break. Creo que es más correcto poner la condición directamente en el while. Así te ahorras una condición.

Por último, creo que las llaves quedan mejor abajo. Este sería mi código:

#include <stdio.h>
#define SIZE 1000

int main (int argc, char **argv)
{
    int lista[SIZE];
    char N[5]="";
    int i,I;

    do
    {
        while (getchar() != '\n' && getchar() != EOF);
        printf("Cantidad de elementos: ");
        fgets(N,5*sizeof(char),stdin);

    } while (((I = atoi(N)) >= 1 ) && (I <= 1000));

    for(i=0; i<I; i++)
    {
        printf("Elemento %d: ", i);
        scanf("%d", &lista[i]);
    }
    return 0;
}


Por cierto, este sería su equivalente en C++ (por si acaso es este tu lenguaje):

Código (cpp) [Seleccionar]

#include <stdio.h>

using name space std;

const int = 1000;

int main (int argc, char **argv)
{
    int Lista[SIZE];
    int N;
    int i,I;

    do
    {
        cout<<"Cantidad de elementos: ";
        cin>>N;
    } while ((N >= 1 ) && (N <= 1000));

    for(i=0; i<I; i++)
    {
        cout<<"Elemento "<<i<<": ";
        cin>>Lista[i];
    }
    return 0;
}
#1140
Con un Batch se podría hacer:

Citarstart http://direccionurl.com