Hace mucho tiempo, cuando empezaba con la programación, tenía la librería conio.h de Borland (en la que aún se siguen basando en muchos sitios), que nos permitía entre otras cosas borrar la pantalla, posicionarnos dentro de la pantalla, escribir con colores, y pedir una tecla al usuario.
Bien, vayámonos al último caso, pedir una tecla al usuario, se hacía con la función getch, y con sólo pulsar la tecla, salía de la función, es decir, no hacía falta pulsar enter.… Leer artículo completo
Obtener UNA tecla
Limpiar el buffer de teclado en Linux con ejemplos en C y C++
A veces, mientras se está desarrollando un pequeño programa en C en el que hay entradas del usuario por teclado, hay veces que parece que se pulsan teclas solas, esto es debido a una entrada de teclado anterior que no ha llegado a volcarse entera en nuestras variables.
Un ejemplo en cuestión lo tenéis aquí:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18#include <stdlib.h>
#include <stdio.h>
#define MAX_NOMBRE 128
int main(int argc, char *argv[])
{
char nombre[MAX_NOMBRE];
int dia, mes, year;
printf ("Introduce fecha de finalización (dd/mm/YYYY): ");
scanf("%d/%d/%d", &dia, &mes, &year);
printf ("Nombre de la tarea: ");
fgets(nombre, MAX_NOMBRE, stdin);
printf("La tarea %s termina el: %d/%d/%d\n", nombre, dia, mes, year);
return EXIT_SUCCESS;
}En un primer momento, cuando introducimos la fecha, tenemos que introducir «12/12/2010» por ejemplo y luego pulsar enter para que scanf() pueda finalizar, aunque esa pulsación de enter se queda almacenada en el buffer de teclado, siendo lo único que hay en el buffer en este momento.… Leer artículo completo
Cambio de base (de base b1 a b2… hasta base36 o tal vez más)
Hace tiempo tuve la necesidad de hacer una función de cambios de base, pero que no estuviera limitada, es decir, no tuviera definido qué base vamos a introducir y qué base debe devolver. Es decir, convertiremos un número en base b1 a base b2; la limitación, el número de caracteres con los que contemos, en el ejemplo hay hasta base 36, y es fácil extenderlo hasta base256… un número en hexadecimal no tiene desde el 0 al 9 y de la A a la F, pues un base36, del 0 al 9 y de la A a la Z.… Leer artículo completo
Poco a poco publicando
Se me ha ocurrido que será interesante iniciar una pequeña biblioteca con las funciones de C que vaya generando, ordenadas por categorías, y está bien empezar con la función que publiqué hace un rato: strrev.
Ocupa muy poco (ya irá creciendo): strutils.zip
Para trabajar con ella:
1gcc -c strutils.cY dentro de nuestro programa debemos hacer
1#include "strutils.h"y para compilar:
… Leer artículo completo1gcc -o miprograma miprograma.c strutils.oVolteando cadenas
En C, una de las pequeñas cosas que a veces nos hace más lentos a la hora de hacer un pequeño programa es la posibilidad de darle la vuelta a una cadena. Bien, aquí traigo un pequeño código (función y ejemplo) de strrev, que además de poder dar la vuelta a una cadena, puede manipular sólo ciertos caracteres:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38#include <stdio.h>
#include <string.h>
char *strrev(char *str, int strl)
{
/* Creamos punteros al principio y al final de la cadena */
/* C A R A C T E R 5 \0 */
/* | | */
char *start = str, *end = str + strl - 1;
char temp;
/* Iteramos hasta que el principio y el fin coincidan */
while(start < end)
{
/* Intercambiamos los caracteres */
/* 1º C A R A C T E R 5 */
/* 2º 5 A R A C T E R C */
/* 3º 5 R R A C T E A C */
/* 4º 5 R E A C T R A C */
/* 4º 5 R E T C A R A C */
temp = *start;
*start++ = *end;
*end-- = temp;
}
return str;
}
/* Ejemplo */
int main()
{
char cadena[50]="Una cadena de caracteres cualquiera";
char tmp[50]="Una cadena de caracteres cualquiera";
char *cad2=cadena;
printf("Cadena original: %s\n", cadena);
printf("Cadena al revés: %s\n", strrev(tmp, strlen(tmp)));
strrev(cadena+14, 10);
printf("Caracteres al revés: %s\n", cad2);
return 0;
}Esta función la encontré hace mucho tiempo navegando y me pareció muy interesante, sobre todo por cómo está hecha, creo que es de las más rápidas.… Leer artículo completo
Sigo probando…
Acabo de instalar el plugin Code Highlighter para WordPress que utiliza la clase GeSHi de PHP para colorear código fuente y contar las líneas, algo importante para mí.
Aquí muestro algunas pruebas, tal vez no sirvan para nada, pero bueno.
Un poco de C:
… Leer artículo completo1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17







Últimos comentarios