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

#401
¿Que es Instagram?
#402
Hola a todos anteriormente ya habia trabajado con sockets en C, sin embargo no estoy seguro si es mi Computadora actual la del problema:


#include<winsock2.h>
#include<stdio.h>

int main() {
int s;
if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
printf("Valor %i\n",s);
perror("socket");
       return 1;
}
}


En mi caso al compilar y ejecutar el codigo anterior siempre me devuelve menos -1


C:\> gcc -o test.exe test.c -lws2_32
C:\> test.exe
Valor -1
socket: No error


El codigo original es mas extenso, pero incluso con ese fragmento basico de codigo me devulve error...

Version de gcc

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/6.3.0/lto-wrapper.exe
Target: mingw32
Configured with: ../src/gcc-6.3.0/configure --build=x86_64-pc-linux-gnu --host=mingw32 --target=mingw32 --with-gmp=/mingw --with-mpfr --with-mpc=/mingw --with-isl=/mingw --prefix=/mingw --disable-win32-registry --with-arch=i586 --with-tune=generic --enable-languages=c,c++,objc,obj-c++,fortran,ada --with-pkgversion='MinGW.org GCC-6.3.0-1' --enable-static --enable-shared --enable-threads --with-dwarf2 --disable-sjlj-exceptions --enable-version-specific-runtime-libs --with-libiconv-prefix=/mingw --with-libintl-prefix=/mingw --enable-libstdcxx-debug --enable-libgomp --disable-libvtv --enable-nls
Thread model: win32
gcc version 6.3.0 (MinGW.org GCC-6.3.0-1)


Voy a tratar de actualizar el mingw

Saludos
#403
En ningun momento capturas el "regis" de main, solo capturas uno en Registro, pero ese pertenece a esa funcion y dicha variable deja de "existir" al momento que vuelve a la funcion main.

Saludos.

PD, no uses CONIO, no es Standar

En su lugar usa  getchar () de la stdio.h
#404
Fancy:

Citarelaborate in structure or decoration. "the furniture was very fancy"

El punto es por que adornar el programa con borrados de pantalla y demas cosas si apenas estas aprendiendo lo basico. Mi recomendacion es que de momento quites todos esos systems("cls") que ademas solo funcionan en windows. Y te concentres en pequeños ejemplos, como paso de parametros a funciones, paso de valores por referencia, apuntadores y cosas basicas.

Saludos!
#405
Citar
   main.c:87:26: warning: passing argument 2 of ganador1 makes pointer from integer without a cast [-Wint-conversion]
   ganador=ganador1(ganador,tablero1[j]);
                             ^
   main.c:4:9: note: expected int (*)[7] but argument is of type int
        int ganador1(int n,int tablero[6][7]);

Es un warning no es un error te avisa de que algo no esta bien, y realmente no lo esta.

tablero1[i][j]

Es un solo numero Entero, aque que esta en la posicion [j], pero la funcion quiere recibir todo el arreglo. Para corregir esto deberias de cambiar o la funcion  o lo  que le estes mandando a la funcion.

Ejemplo mandandole toda el arreglode numeros a la funcion ganandor1, y no solo un solo valor entero.

ganador=ganador1(ganador,tablero1);

Citarprinft("El jugador 1 es el que gana");

Es printf lo escribiste mal

Citarmain.c:136:30: warning: passing argument 2 of ganador2 makes pointer from integer without a cast [-Wint-conversion]
    validacion2=ganador2(ganador,tablero1[j]);
                                 ^
   main.c:5:9: note: expected int (*)[7] but argument is of type int
        int ganador2(int n,int tablero[6][7]);
            ^

Mismo error del primero


Citarsystem("cls");

No uses SYSTEM solo para borrar la Pu74 pantalla, en lugar de usar funciones fancy para borrra la pantalla, deberias de aprender a programar y quitarle los adornos al programa.

Citar
    ^
   main.c:18:1: warning: ignoring return value of scanf, declared with attribute warn_unused_result [-Wunused-result]
    scanf("%i",&opciones);
    ^
   main.c:23:5: warning: ignoring return value of system, declared with attribute warn_unused_result [-Wunused-result]
        system("cls");
        ^
   main.c:54:1: warning: ignoring return value of scanf, declared with attribute warn_unused_result [-Wunused-result]
    scanf("%i",&jugador1);
    ^
   main.c:93:1: warning: ignoring return value of system, declared with attribute warn_unused_result [-Wunused-result]
    system("cls");
    ^
   main.c:103:1: warning: ignoring return value of scanf, declared with attribute warn_unused_result [-Wunused-result]
    scanf("%i",&jugador2);
    ^
   main.c:142:1: warning: ignoring return value of system, declared with attribute warn_unused_result [-Wunused-result]
    system("cls");
    ^
   main.c:155:1: warning: ignoring return value of scanf, declared with attribute warn_unused_result [-Wunused-result]
    scanf("%i",&volverajugar);
    ^
   /var/tmp/ccOyAiBU.o: In function `main':
   main.c:(.text.startup+0xb0): undefined reference to `prinft'
   main.c:(.text.startup+0x503): undefined reference to `prinft'
   collect2: error: ld returned 1 exit status

Puedes omitir todos los errores del Scanf son simples warning.

Saludos
#406
Programación C/C++ / Re: Obtener StackTrace?
25 Noviembre 2018, 14:16 PM
Si ese es el caso deberias de usar criptografia para tener la certeza, medianta  algun sistema de clave publica, clave privida.

Saludos
#407
Programación C/C++ / Re: Duda cstdlib y srand (C++)
25 Noviembre 2018, 08:11 AM
A mi me da error:


C:\codigos>g++ -o t.exe t.cpp
t.cpp: In function 'int main()':
t.cpp:12:21: error: 'time' was not declared in this scope
     srand(time(NULL));

C:\codigos>g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/6.3.0/lto-wrapper.exe
Target: mingw32
Configured with: ../src/gcc-6.3.0/configure --build=x86_64-pc-linux-gnu --host=mingw32 --with-gmp=/mingw --with-mpfr=/mingw --with-mpc=/mingw --with-isl=/mingw --prefix=/mingw --disable-win32-registry --target=mingw32 --with-arch=i586 --enable-languages=c,c++,objc,obj-c++,fortran,ada --with-pkgversion='MinGW.org GCC-6.3.0-1' --enable-static --enable-shared --enable-threads --with-dwarf2 --disable-sjlj-exceptions --enable-version-specific-runtime-libs --with-libiconv-prefix=/mingw --with-libintl-prefix=/mingw --enable-libstdcxx-debug --with-tune=generic --enable-libgomp --disable-libvtv --enable-nls
Thread model: win32
gcc version 6.3.0 (MinGW.org GCC-6.3.0-1)


A de ser algo de tu compilador que la incluye, alguna vez me paso algo similar que sin incluir explícitamente en biblioteca de funciones, el compilador no marcaba errores y generaba el exe sin problemas.

Saludos
#408
Realice un programa que pueda recibir parámetros desde la linea de comandos, dicho programa recibirá un directorio en el disco duro o un archivo

Si es Directorio..
  • Comprobar que el directorio sea valido.
  • Comprobar que sea distinto al directorio actual.
  • Listar los archivos y pesos en bytes en el directorio mencionado.
  • Realizar una copia de seguridad de dichos archivos, con las siguientes características
  • Todos lo archivos del directorio se deben de guardar en un unico archivo llamado directorio.dir donde directorio se debe sustituir por el nombre  del directo indicado en primer lugar. Ejemplo "C:\temp\codigos\" el archivo se debe de llamar codigos.dir
  • Se debera de tener un registro  también en archivo (index.dat), que contenga Nombre, donde comienza y cuando espacio ocupa cada archivo del directorio en el nuevo.
  • Se debera realizar también una validación tipo checkum de cada archivo, utilice el sistema Hash de su preferencia para hacer esta validación.


    Si es archivo, deberá de ser alguno en terminación .dir
  • Comprobar que exista
  • Que este completo segun la lista de archivos que previamente guardamos en el index.dat
  • Debera de Extraerlo en un directorio indicado por el usuario (En un segundo parametro al programa) distinto al directorio Original.

    El programa podrá ser creado en C o C++

    Deberá de utilizar en cualquier momento la menor cantidad de memoria posible y ser lo bastante rápido para pode competir con otros.

    El post es solo para darle un poco mas de movimiento a este subforo de programación en C/C++.

    Si tienen dudas sobre una parte en especifico, pueden de preferencia abrir un nuevo tema, con la duda en especifico.

    Si alguno quiere participar comentelo aqui, asi mismo también pueden sugerir mas features para el programa. Ya que opciones hay varias.

    La intención no es reinventar la rueda, programas similares ya existen Tipo (TAR), la intención es que quien este aprendiendo C o C++ pueda retarse asi mismo con algo que en un futuro pueda reutilizar. Y no se diga la experiencia.

    Saludos
#409
Cita de: MAFUS en 24 Noviembre 2018, 22:34 PM
A raíz de este post me he puesto a pensar en todo esto.
Ya que C viene del UNIX y en UNIX todo son archivos y por tanto stdin es un archivo ¿qué tal si llevamos el puntero de stdin hasta el final y nos saltamos todo lo que hay dentro?

Incluso acepta una única pulsación de intro.

;-) ;-)

No habia intentado eso, pero funciona muy bien!, yo intente con la funcion feof para tratar de determinar si estabamos en el final del archivo, pero no funciono para STDIN.

Con fseek si funciona!!!


#include<stdio.h>

int main() {
char temporal[10];
printf("Ingrese una cadena: ");
fgets(temporal,10,stdin);
printf("Cadena Leida: %s\n",temporal);
fseek(stdin, 0, SEEK_END);
printf("Ingrese otra cadena: ");
fgets(temporal,10,stdin);
printf("Cadena Leida: %s\n",temporal);
}





Saludos!
#410
Realmente no importa lo que queda en el buffer. Ya que si vaciamos el buffer de stdin no se volvera a llenar hasta que volvamos a llamar a una funcion tipo fgets, gets, scanf... etc.

Ejemplo:


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

int main() {
int len,i = 0;
char temporal[10];
char c;
printf("Ingrese una cadena: ");
fgets(temporal,10,stdin);
printf("Cadena Leida: %s\n",temporal);
len = strlen(temporal);
if(temporal[len - 1 ]  != 0xA) {
while ((c = getchar()) != 0xA);
}
printf("Ingrese otra cadena: ");
fgets(temporal,10,stdin);
printf("Cadena Leida: %s\n",temporal);
}


Salida:



Saludos