Tanto getchar (estándar) como getch (extensión) retornan un carácter. Tu la estas utilizando para generar una pausa que, siendo estrictos, no es parte del programa (es mas bien una deficiencia del IDE que utilizas).
Un saludo
Un saludo
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ú#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
void fn(char const *texto, int num_args, ...);
int main(void)
{
fn("Un argumento sin nombre", 1, 1);
fn("Dos argumentos sin nombre", 2, 1, 2);
fn("Tres argumentos sin nombre", 3, 1, 2, 3);
return EXIT_SUCCESS;
}
void fn(char const *texto, int num_args, ...)
{
int i;
va_list lista; /* 1 */
va_start(lista, num_args); /* 2 */
printf("%s:", texto);
for (i = 0; i < num_args; i++)
printf(" %d", va_arg(lista, int) /* 3 */);
putchar('\n');
va_end(lista); /* 4 */
}
for(fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP); /* <== */
printf("%3d%6.1f\n", fahr,(5.0/9.0)*(fahr-32));
for(fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP)
printf("%3d%6.1f\n", fahr,(5.0/9.0)*(fahr-32));
Cita de: Fastolfe en 30 Enero 2012, 20:17 PMYa se que existen esas funciones rir3760, pero prefiero no acostumbrarme a no usarlas, ya que son vulnerables a los desbordamientos del buffer (y porque me gusta hacerme mis propias funciones xD).Siendo muy estrictos (lease pedantes) la única función totalmente insegura es "gets". Las demás pueden serlo (o no) dependiendo del contexto. Por ejemplo imagina que desarrollas un procesador de texto (un filtro) y controlas la entrada. En un caso así no hay problema si utilizas funciones como strcpy y strcat.
Cita de: Fastolfe en 30 Enero 2012, 20:17 PMAdemás me divertí rompiendome la cabeza para encontrar el algoritmo de busqueda, usando esas funciones no habría sido lo mismoSi es por diversión, adelante.
Cita de: Fastolfe en 30 Enero 2012, 20:17 PMrir3760, eso es C++?No. Es C según su (por desgracia todavía) estándar de facto (C90).
printf("1: %s\n", aux[0]);
printf("2: %s\n", aux[1]);
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char linea[] = " Esta es la cadena de prueba ";
char *palabra[100]; /* O algun valor apropiado */
int longitud[100]; /* O algun valor apropiado */
int num_palabras;
char *p;
int i;
p = linea;
num_palabras = 0;
i = strspn(p, " ");
while (p[i] != '\0'){
/* Almacenamos la direccion de la palabra */
p += i;
palabra[num_palabras] = p;
/* Obtenemos su longitud */
longitud[num_palabras] = strcspn(p, " ");
/* Actualizamos los contadores */
p += longitud[num_palabras];
num_palabras++;
/* Pasamos a la siguiente ... */
i = strspn(p, " ");
}
for (i = 0; i < num_palabras; i++)
printf("palabra[%d] == \"%.*s\"\n", i, longitud[i], palabra[i]);
return EXIT_SUCCESS;
}
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char linea[] = " Esta es la cadena de prueba ";
char *palabra[100]; /* O algun valor apropiado */
int longitud[100]; /* O algun valor apropiado */
int num_palabras;
int i;
char *p;
char aux[100];
int num_chars;
int num_spc;
p = linea;
num_palabras = 0;
while (sscanf(p, " %n%s%n", &num_spc, aux, &num_chars) == 1){
/* Almacenamos la direccion de la palabra */
palabra[num_palabras] = p + num_spc;
longitud[num_palabras] = num_chars - num_spc;
num_palabras++;
/* Pasamos a la siguiente ... */
p += num_chars;
}
for (i = 0; i < num_palabras; i++)
printf("palabra[%d] == \"%.*s\"\n", i, longitud[i], palabra[i]);
return EXIT_SUCCESS;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num;
int i;
int j;
long fact;
do {
scanf("%d", &num);
if (num < 0)
puts("El numero es incorrecto!");
}while (num < 0);
for (i = 0; i <= num; i++){
fact = 1;
for (j = i; j > 1; j--)
fact *= j;
printf("%2d! = %ld\n", i, fact);
}
return EXIT_SUCCESS;
}