21
C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más / Printf un poco especial en lenguaje C validar fecha introducida
« en: 10 de Noviembre 2013, 21:29 »Citar
Hago esta aclaración porque en muchos casos suponen que tengo 15 o 20 años(es lo lógico) y en realidad tengo 61, como comprenderán no voy a la facultad y la gente que conozco no tiene la más mínima idea lo que es la computadora y menos programar.-
Hola a todos.
El programita lo que hace es verificar que se ingrese día , mes y año válidos, el problema es que no puedo lograr quitar el 0 que aparece después del printf, como lo muestra la imagen.-
![](http://i40.tinypic.com/vh5b1u.jpg)
Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
void mostrar(int orden, int dd, int mm, int aaaa);
int main(void){
int dd,mm,aaaa,orden,ok,ch; dd = mm = aaaa = orden = ok = ch = 0;
do{
dd = 0;
mostrar(0, dd, mm, aaaa);
ok = scanf("%d", &dd) == 1 && dd >= 1 && dd <= 31;
while ((ch = getchar()) != EOF && ch != '\n');
}while(!ok);
do{
mm = 0;
mostrar(1, dd, mm, aaaa);
ok = scanf("%d", &mm) == 1 && mm >= 1 && mm <= 12;
while ((ch = getchar()) != EOF && ch != '\n');
}while(!ok);
do{
aaaa = 0;
mostrar(2, dd, mm, aaaa);
ok = scanf("%d", &aaaa) == 1 && aaaa >= 1 && aaaa <= 9999;
while ((ch = getchar()) != EOF && ch != '\n');
}while(!ok);
mostrar(3, dd, mm, aaaa);
return 0;
}
void mostrar(int orden, int dd, int mm, int aaaa){
system("CLS");
if(orden == 0){
printf("\n Ingrese dia...: %d", dd);
}
if(orden == 1){
printf("\n Ingrese dia...: %d", dd);
printf("\n Ingrese mes...: %d", mm);
}
if(orden == 2){
printf("\n Ingrese dia...: %d", dd);
printf("\n Ingrese mes...: %d", mm);
printf("\n Ingrese anio..: %d", aaaa);
}
}
Lo que dejo en claro es que no quiero utilizar conio, Windows.h ni nada que salga de lo estándar.- Espero que en primer lugar que esto sea factible de lograr y que alguien en este foro sepa cómo hacerlo.-
Saludos.
Daniel