Es por la línea 103:
Lo que haces es usar argc en vez del valor conseguido por argv[1]
Código [Seleccionar]
for( int i=0; i<argc; i++){
Lo que haces es usar argc en vez del valor conseguido por argv[1]
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úfor( int i=0; i<argc; i++){
// Comprobamos que existe más de un parámetro (el nombre) en la línea de comandos
if(argc < 3) {
fprintf(stderr, "%s\n", "Debe introducir la longitud de la clave...");
exit(EXIT_FAILURE);
}
/*El 1º parámetro siempre va a ser la longitud de la clave*/
if(sscanf(argv[1], "%u", &longitud_clave) == 0) {
fprintf(stderr, "%s\n", "El primer parámetro debe ser un entero. Indica la longitud de la clave...");
exit(EXIT_FAILURE);
}
#include <stdio.h>
int main() {
char str[1024];
printf("> ");
scanf("%1024[^\n]", str);
printf("%s\n", str);
fseek(stdin, 0, SEEK_END);
puts("");
printf("> ");
scanf("%1024[^\n]", str);
printf("%s\n", str);
}
scanf("%d%*c", &op);
#include <stdio.h>
#include <stdbool.h>
#include <stdint.h>
uint64_t complemento_a_2(uint64_t num) {
return (num ^ -1) + 1;
}
/**
* Devuelve el valor de una resta realizada con
* complemento a dos en forma humana. Los operandos deben
* ser positivos por trabajar a nivel de bits
* a: minuendo
* b: sustraendo
* c: puntero a la variable que contendrá el resultado
* retorna: true si el resultado es negativo; false si es positivo
*/
bool resta(uint64_t a, uint64_t b, uint64_t *resultado) {
bool signo;
*resultado = a + complemento_a_2(b);
signo = *resultado >> (sizeof(uint64_t) * 8 - 1);
if(signo) {
*resultado = complemento_a_2(*resultado);
}
return signo;
}
int main() {
uint64_t a = 3, b = 7, resultado;
if(resta(a, b, &resultado)) {
putchar('-');
}
printf("%I64u\n", resultado);
}