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

#251
Hola, gente. -
Quiero poner lo siguiente en el foro de C/C++ cada vez que alguien (normalmente nuevo) se olvida utilizar las etiquetas GeSHi pero me lo toma como un código en C, como debo hacer para que aparezca cono un texto normal. -

Por favor, edita el código y ponle antes del primer #include y después del cierre de la función main, se ve mucho mejor y además es más fácil de interpretar el error o la(s) duda(s) que tengas, gracias. -
Por favor, díganme si no corresponde que haga esto por no pertenecer a la comunidad y todo ok, es solo con el afán de colaborar.

Saludos.
Daniel
#252
Hola.
Esto lo soluciona, lo encontré en la web, por lo menos en los 2 sistemas operativos que tengo en mis maquinas funciona, lo lamentable es que no puedo documentarlo, creo que no es casualidad, desconozco cómo abrir la cabecera stdlib.h para ver que hace la función system. -

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

void borrar( void );

int main( void ){
char a[] = "La casa de Bernarda Alba", *b = &a[10];

printf( "\n Programa que muestra como borrar terminal tanto en Linux como Windows.\n\n"
" Presione <Enter> para continuar...." );
getchar();
borrar();
printf("\n %s\n", b);

return 0;
}

void borrar( void ){
system("cls||clear");
}


Saludos.
Daniel


#253
Hola.
No estoy seguro si esto va en este foro o en el de los sistemas operativos, Eternal lo decidirá. -
¿Alguien conoce alguna forma para borrar terminal en Windows y Linux con una misma sentencia? (lenguaje C).-

Saludos.
Daniel



#254
Hola, a todos.
Conseguí hacer otra versión para que el ingreso de números sea correcto, espero que le sirva de ayuda a alguien. -

#include <stdio.h>
#include <limits.h>

int main( void ){
long long int numero = 0;
int ch, ok, con = 0;

do{
printf("\n Ingresa un numero entero(maximo %u)....: ", UINT_MAX);
ok = scanf("%lld", &numero) == 1 && numero >= 1 && numero <= UINT_MAX;
while ((ch = getchar()) != EOF && ch != '\n'){
con++;
};
if( con > 0 ){
ok = 0;
con = 0;
}
}while(!ok);

printf( "\n Ingreso...: %lld", numero );

return 0;
}


Aprovecho para consultarles si alguien sabe por qué me da los siguientes errores al compilar, consulté en internet y está todo explicado en inglés y todavía no es mi fuerte, debo aclarar que en la máquina que compilo en línea de comando (imagen) me da las advertencias, en cambio, en la otra de 64 bits, en Linux con el compilador que trae integrado el ide Geany, todo correcto. -     



Creo tener la última versión del compilador gcc, tal vez esté mal configurado.-

Saludos.
#255
Hola. -
declarando numero como long long como sugirió ivancea96 funciona a la perfección. -
No obstante me quedan dudas, voy a seguir practicando. -

Saludos.
Daniel
#256
Hola, fary.
Muchas gracias por ocuparte, a continuación pongo unas líneas para que veas como lo hice, si esto es lo que proponías en mi caso no me funciona, o sea, no valida correctamente, si pongo if( (numero*10) + (c-48) <= 1000 ) e ingreso 1001 me valida correctamente pero con  UINT_MAX no me funciona, probé con un #define y tampoco. -

.......................
while((c = getchar()) != '\n' && c != '\r'){
if(isdigit(c)){
if( (numero*10) + (c-48) <= UINT_MAX )
numero = (numero*10) + (c-48);
else{
printf( "\n El numero ingresado supera el maximo permitido..." );
numero = 0;
break;}
}
else{
printf( "\n Ingreso invalido..." );
numero = 0;
break;
}
}
.....................

Espero que me indiques(n) donde se encuentra el error,- 
Saludos.
Daniel
#257
Hola a todos.
Estoy haciendo algunas practicas para hacer que el ingreso de datos en c no traiga sorpresas, En cuanto a las cadenas me parece que con el primer programa está todo resuelto, no debería haber errores (me refiero a no escribir más aya del límite de la variable).-
El inconveniente lo tengo con el ingreso de números, no logro validar que el número ingresado sea menor o igual a UINT_MAX, pensé en crear una variable con mayor capacidad y así no tendría sorpresas, pero lo que quisiera saber si hay alguna otra manera,-

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

#define MAX_CARACTERES 9

int main(void){
char cadena[MAX_CARACTERES]={'\0'}, *p=NULL;
unsigned int ch=0;

printf("\n\n ----- Programa que muestra el comportamiento de fgets -----");
printf("\n\n Ingrese una frase (maximo %d caracteres)....:", MAX_CARACTERES - 1);
fgets(cadena, MAX_CARACTERES, stdin);
if((p=strchr(cadena, '\n'))){
*p='\0';
}
else{
while((ch = getchar()) !='\n' && ch!=EOF);
}
printf("\n  Ingreso.............:%s", cadena);
return 0;
}


#include <stdio.h>
#include <ctype.h>
#include <limits.h>

int main(void){
unsigned int numero = 0, c;

printf("\n\n Ingrese una numero entero (maximo permitido %u)....:", UINT_MAX);

while((c = getchar()) != '\n' && c != '\r'){
if(isdigit(c)){
numero *= 10;
numero += c-48;
}
else{
printf( "\n Ingreso invalido..." );
numero = 0;
break;
}
}

printf("\n Ingreso.............:%u", numero);
return 0;
}




Otra cosita, alguien me podría decir como poner estas 2 líneas en una sola, le puse paréntesis, pero de cualquier manera el resultado es erróneo,-

numero *= 10;
numero += c-48;


Bueno es todo, espero puedan ayudarme.-
Saludos.
Daniel 
#258
GNU/Linux / Instalar hubiC en linux Mint 17.2
3 Febrero 2016, 14:13 PM
Hola, gente.
Me encontré ayer con el inconveniente que el 1 de Mayo de 2016 Copy no existe más para subir archivos a la nube, es una verdadera lástima ya que me funcionaba de maravillas. -
Reconozco que no leí mucho para remplazarlo, me encontré con hubiC y lo instale en Windows 7 todo bien, pero tengo otra máquina con Linux Mint y por más que busco en internet no allo la manera de instalarlo.
Supongo que Habrá una manera estándar para instalar programas en Linux, pero como hace poco tiempo que lo estoy utilizando la desconozco y no tengo tiempo (en estos momentos) para estudiar algún manual de Linux, por eso los consulto .-

Desde ya muchas gracias.
Daniel
#259
Hola, MAFUS.
Buena síntesis, solo sugería que alguien postee una versión distina porque seguramente experto como Uds. pueden lograr lo mismo de otra manera y los que estamos aprendiendo nos vemos muy beneficiados al tener más de una versión para lograr lo mismo. - 

Saludos.
#260
Hola, gente.
Por fin tengo claro lo de size_t y lo que hace el programa combinando el tipo char con punteros, estoy tratando de hacer mi propia versión pero no logro cambiar casi nada para lograr lo mismo, no sé Uds.

Saludos.
Daniel