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 - m@o_614

#241
Programación C/C++ / Re: Archivos
29 Agosto 2013, 02:33 AM
ya revise algunos tutoriales y me resolvio muchas dudas, el codigo por ahora lo tengo asi:

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

int main()
{
   FILE *fd;
   int ad;
   ad = creat("F:\\archivo_destino.txt",755);
   if((fd = fopen("F:\\archivo_fuente.txt","r"))!=NULL)
   {
       while(read(fd,ad,1)!=NULL)
           write(1,ad,1);
   }
   else
   {
       printf("No se pudo abrir el archivo\n");
       exit(1);
   }
   close(fd);
   return 0;
}


primero ya que tengo mi archivo con una cadena de caracteres, tengo que pasarlas a otro archivo, y es ahi donde no se que hacer, si crear el archivo destino(a donde voy a copiar los caracteres), de esta manera:

   
int ad;
ad = creat("F:\\archivo_destino.txt",755);


y pasarle ad a la funcion read

while(read(fd,ad,1)!=NULL)

o crear un array tipo char para ahi almacenar la cadena del archivo fuente

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

int main()
{
   FILE *fd;
   char cad[40];
   if((fd = fopen("F:\\archivo_fuente.txt","r"))!=NULL)
   {
       while(read(fd,cad,1)!=NULL)
           write(1,cad,1);
   }
   else
   {
       printf("No se pudo abrir el archivo\n");
       exit(1);
   }
   close(fd);
   return 0;
}
#242
Programación C/C++ / Archivos
28 Agosto 2013, 21:16 PM
Saludos

Tengo que hacer un  programa que copie todos los caracteres de un archivo fuente a uno destino, ya he creado el archivo fuente (el que contiene los caracteres), y ya lo pude abrir, el problema es que no se muy bien como manejar archivos y como hacer que me recorra toda la linea de caracteres y copiarlos en otro archivo.

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

int main()
{
    FILE *p;
    p = fopen("F:\\archivo.txt","r");
    if(p!=NULL)
       printf("Si se pudo abrir el archivo\n");
    else
    {
        printf("No se pudo abrir el archivo\n");
        exit(1);
    }
    return 0;
}


no les pido que me muestren el codigo, solo que me den una idea de como hacerlo

gracias
#243
saludos

el programa es algo como esto:

int main()
{
    char B[TAM],*array[N];
    int i;
    for(i=0;i < N;i++)
    {
        printf("Dame el %d dato: ",i+1);
        gets(B);
        *(array+i) = (char*)malloc((strlen(B)+1)*sizeof(char));
        strcpy(array[i],B);
        nombre_funcion(array,i);
    }
    return 0;
}
int nombre_funcion(char *a[],int i)
{
    int c[TAM];
    for(????;????';????)
    return 0;
}


en nombre_funcion tengo que pasarle por parametro cada uno de los punteros a los que le asigne memoria en la funcion main, y en el for tengo que recorrer la cadena para hacer un X procedimiento, es ahi donde tngo el problema

gracias por sus respuestas
#244
saludos

tengo declarado un arreglo de punteros por ejemplo: char* a[N], y para ingresarle los datos tengo que asignarle memoria a cada uno de los punteros con malloc, una vez que ya hice eso tengo que enviar cada uno de los punteros a una funcion x, y es ahi donde tengo el problema que no se si tengo que enviar: funcion(a) o tambien tengo que enviarle la posicion o sea : *a[1],*a[2],*a[3]

gracias
#245
Dudas Generales / Invalid menu handle
25 Agosto 2013, 23:34 PM
Saludos

Estoy teniendo un problema a la hora de querer descargar una imagen con extension .JPG, me aparece un mensaje de error que dice invalid menu handle, y no tengo idea de por que

gracias
#246
Programación C/C++ / Re: tamaño de un arreglo
24 Agosto 2013, 23:42 PM
Gracias por tu respuesta do-while creo que el problema que tengo con mi codigo es que tengo declarado un arreglo[10] de tamanio 10, pero en el ciclo for no voy a utilizar los 10 espacios, solo unos pocos, porque en el for le tengo que copiar al arreglo[] algunos elementos de otro arreglo, por eso no voy a necesitar las 10 posiciones.

pero cuando hago esto

tam = sizeof(arreglo)/sizeof(int)

no me calcula bien el numero de elementos, porque sizeof(arreglo) siempre me va a dar 40,(10 elementos * 4bytes que se necesitan para un entero)

y eso es lo que no se como corregir
#247
Programación C/C++ / Re: tamaño de un arreglo
24 Agosto 2013, 22:06 PM
Saludos Alien-Z, entonces no puedo hacer algo como esto:

 
#include <stdio.h>
#include <stdlib.h>
#define TAM 10
int main()
{
int i , a[TAM],tam;
for(i=0;i < TAM;i++)
    scanf("%d",&a[i]);

   tam = sizeof(a)/sizeof(int);
   printf("El numero de elementos del arreglo es %d\n",tam);
return 0;
}
#248
Programación C/C++ / tamaño de un arreglo
23 Agosto 2013, 23:52 PM
Saludos tengo una duda de como calcular el tamanio de de un arreglo con el uso de alguna funcion tipo strlen, pero strlen tengo entendido que solo es para cadenas y no para un array de enteros, que es lo que estoy buscando.

gracias

#249
Saludos Alien-Z ya por fin pude encontrar el error, estaba en el puntero del segundo for, cada vez que entraba de nuevo al 2do ciclo el puntero no se reiniciaba  a la primera posicion, pero ya lo pude corregir

int main()
{
   int i,j,bandera;
   char romano[TAM],letras[]={'I','V','X','L','C','D','M','\0'},*ptr,*p;
   printf("Dame el primer numero: ");
   gets(romano);
   ptr = romano;
   p = letras;
   for(i=*ptr;*ptr!='\0';*ptr++)
   {
       bandera = 0;
       for(j=0;((j<7)&&(bandera==0));j++)
       {
           if(*ptr == *(p+j))
              bandera = 1;
       }
       if(!bandera)
       {
           printf("Error!No es numero romano\n");
           exit(1);
       }
   }
   return 0;
}


muchas gracias
#250
amchacon ya le puse lo que me dijiste en la condicion *ptr!= '\n' && *ptr!='\0'
y no me funciona aun, sigo teniendo el mismo problema de que aunque le ponga un numero romano me imprime que no es

#include <stdio.h>
#include <stdlib.h>
#define TAM 10

int main()
{
    int i,j,bandera;
    char romano[TAM],letras[]={'I','V','X','L','C','D','M','\0'},*ptr,*p;
    printf("Dame el primer numero: ");
    fgets(romano,TAM,stdin);
    ptr = romano;
    p = letras;
    for(i=*ptr;((*ptr!='\0')&&(*ptr!= '\n'));*ptr++)
    {
        bandera = 0;
        for(j=*p;(((*p!='\0')&&(*ptr!='\n'))&&(bandera==0));*p++)
        {
            if(*ptr == *p)
               bandera = 1;
        }
        if(!bandera)
        {
            printf("Error!No es numero romano\n");
            exit(1);
        }
    }
    return 0;
}