Librerías

Standard Input/Output:

#include <stdio.h>

printf: Print Formatted

int printf(const char *restrict format, ...);

Imprime texto formateado en la salida estándar (stdout). El primer argumento es una cadena de formato que puede contener especificadores como %d, %f, %s, etc. Devuelve el número de caracteres escritos o un valor negativo si ocurre un error.

printf()

scanf: Scan Formatted

int scanf(const char *restrict format, ...);

Lee datos formateados desde la entrada estándar (stdin). La cadena de formato indica cómo interpretar los datos ingresados (por ejemplo %d, %f, %s, etc.). Devuelve el número de elementos leídos correctamente o EOF si ocurre un error o se alcanza el fin de archivo.

scanf()

fflush: File Flush

int fflush(FILE *stream);

Vacía el buffer de un flujo de salida, forzando la escritura inmdiata de los datos pendientes. Si stream es NULL, se vacían todos los flujos de salida abiertos. Devuelve 0 en caso de éxito o EOF si ocurre un error.

En el curso usamos: fflush(stdin). Pero no es estándar en C. El estándar solo garantiza el uso de fflush para flujos de salida. En algunos compiladores (como MSVC o ciertos entornos de Windows) funciona con stdin, pero no es portable. El compilador usado para la construcción de este repositorio MinGW64, permite su uso.

fflush()

gets: Get String

char *gets(char *str);

Lee una línea desde stdin hasta encontrar un salto de línea o EOF. No verifica el tamaño del buffer, por lo que puede provocar buffer overflow. Fue declarada obsoleta en C99 y eliminada en C11. Se recomienda usar fgets().

gets()

fgets: File Get String

char *fgets(char *restrict str, int count, FILE *restrict stream);

Lee caracteres desde un archivo o desde stdin hasta encontrar un salto de línea (\n), alcanzar count - 1 caracteres o llegar al final del archivo (EOF). El salto de línea se almacena en el buffer si hay espacio y la cadena siempre termina en '\0'.

fgets()

getchar: Get Character

int getchar(void);

Lee un carácter desde stdin. Devuelve el carácter leído convertido a int o EOF si ocurre un error o se alcanza el final del archivo.

getchar()

fopen: File Open

FILE *fopen(const char *restrict filename, const char *restrict mode);

Abre un archivo y devuelve un puntero a FILE asociado al flujo. El parámetro mode indica el modo de apertura (por ejemplo "r", "w", "a", etc.). Devuelve NULL si el archivo no puede abrirse.

fopen()

fclose: File Close

int fclose(FILE *stream);

Cierra un archivo asociado a un flujo FILE. Vacía los buffers pendientes y libera los recursos del archivo. Devuelve 0 si se cierra correctamente o EOF si ocurre un error.

fclose()

fputc: File Put Character

int fputc(int ch, FILE *stream);

Escribe un carácter en un archivo o flujo. El valor de ch se convierte a unsigned char y se escribe en stream. Devuelve el carácter escrito o EOF si ocurre un error.

fputc()

fgetc: File Get Character

int fgetc(FILE *stream);

Lee un carácter de un archivo o flujo. Devuelve el carácter leído convertido a unsigned char y promovido a int, o EOF si ocurre un error o se alcanza el final del archivo.

fgetc()

feof: File End Of File

int feof(FILE *stream);

Indica si se llegó al final del archivo asociado al flujo. Devuelve un valor distinto de 0 si el indicador de fin de archivo está activo, o 0 en caso contrario.

feof()

ferror: File Error

int ferror(FILE *stream);

Comprueba si ocurrió un error en un flujo de archivo. Devuelve un valor distinto de 0 si el indicador de error está activo, o 0 si no hay error.

ferror()

putchar: Put Character

int putchar(int char);

Escribe un carácter en la salida estándar (stdout). El valor de ch se convierte a unsigned char antes de escribirse. Devuelve el carácter escrito o EOF si ocurre un error.

putchar()

puts: Put String

int puts(const char *str);

Escribe una cadena en la salida estándar (stdout) seguida de un salto de línea (\n). Devuelve un valor no negativo en caso de éxito o EOF si ocurre un error.

puts()

fputs: File Put String

int fputs(const char *restrict str, FILE *restrict stream);

Escribe una cadena en un archivo o flujo. A diferencia de puts, no agrega un salto de línea al final. Devuelve un valor no negativo en caso de éxito o EOF si ocurre un error.

fputs()

fprintf: File Print Formatted

int fprintf(FILE *restrict stream, const char *restrict format, ...);

Imprime texto formateado en un archivo o flujo. La cadena format puede contener especificadores como %d, %f, %s, etc. Devuelve el número de caracteres escritos o un valor negativo si ocurre un error.

fprintf()

fscanf: File Scan Formatted

int fscanf(FILE *restrict stream, const char *restrict format, ...);

Lee datos formateados desde un archivo o flujo. La cadena format indica cómo interpretar los datos (por ejemplo %d, %f, %s, etc.). Devuelve el número de elementos leídos correctamente o EOF si ocurre un error o se alcanza el final del archivo.

fscanf()

sscanf: String Scan Formatted

int sscanf(const char *restrict buffer, const char *restrict format, ...);

Lee datos formateados desde una cadena. a cadena format indica cómo interpretar los datos (por ejemplo %d, %f, %s, etc.). Devuelve el número de elementos leídos correctamente.

sscanf()

fwrite: File Write

size_t fwrite(const void *restrict buffer, size_t size, size_t count, FILE *restrict stream);

Escribe bloques de datos binarios en un archivo. Escribe count elementos de tamaño size desde el buffer. Devuelve la cantidad de elementos escritos correctamente.

fwrite()

fread: File Read

size_t fread(void *restrict buffer, size_t size, size_t count, FILE *restrict stream);

Lee bloques de datos binarios desde un archivo hacia buffer. Lee hasta count elementos de tamaño size. Devuelve la cantidad de elementos leídos correctamente.

fread()

ftell: File Tell

long ftell(FILE *stream);

Devuelve la posición actual del indicador de lectura/escritura dentro del archivo. Devuelve -1L si ocurre un error.

ftell()

fseek:File Seek

int fseek(FILE *stream, long offset, int origin);

Mueve el indicador de posición dentro del archivo. origin puede ser SEEK_SET, SEEK_CUR o SEEK_END. Devuelve 0 si tiene éxito.

fseek()

rewind: Rewind

void rewind(FILE *stream);

Mueve el indicador de posición al inicio del archivo y limpia el indicador de error del flujo.

rewind()

remove: Remove File

int remove(const char *pathname);

Elimina un archivo del sistema. Devuelve 0 si la operación tiene éxito.

remove()

Console Input/Output

#include <conio.h>

getche: Get Character Echo

int getche(void);

Lee un carácter desde el teclado y lo muestra inmediatamente en pantalla (con eco). Devuelve el carácter leído. Función no estándar.

getche()

clrscr: Clear Screen

void clrscr(void);

Limpia la pantalla de la consola y coloca el cursor en la esquina superior izquierda. Función no estándar. Se puede reemplazar con system("cls") en Windows, o con system("clear") en Linux/Unix. Que pertenecen al estándar.

clrscr()

getch: Get Character

int getch(void);

Lee un carácter desde el teclado sin mostrarlo en pantalla (sin eco). Devuelve el carácter leído. Función no estándar.

getch()

Standard Definitions

#include <stddef.h>

sizeof(): Size Of

sizeof(type);
sizeof expression;

Operador que devuelve el tamaño en bytes de un tipo de dato o de una expresión. El resultado es de tipo size_t.

sizeof()

Standard Library

#include <stdlib.h>

system(): System Command

int system(const char *command);

Ejecuta un comando del sistema operativo mediante el intérprete de comandos. Devuelve un valor que indica el resultado de la ejecución del comando.

system()

rand: Random

int rand();

Genera un número pseudoaleatorio entre 0 y RAND_MAX.

rand()

exit: Exit Program

void exit(int exit_code);

Termina la ejecución del programa inmediatamente y devuelve el código exit_code al sistema operativo.

exit()

malloc: Memory allocation

void *malloc(size_t size);

Reserva dinámicamente un bloque de memoria de tamaño size bytes. Devuelve un puntero al bloque asignado o NULL si falla.

malloc()

calloc: Contiguous Allocation

void *calloc(size_t num, size_t size);

Reserva memoria para num elementos de tamaño size e inicializa todos los bytes en cero. Devuelve un puntero al bloque asignado o NULL.

calloc()

realloc: Re-Allocation

void *realloc(void *ptr, size_t new_size);

Cambia el tamaño del bloque de memoria apuntado por ptr a new_size bytes. Puede mover el bloque a otra dirección.

realloc()

free: Free Memory

void free(void *ptr);

Libera un bloque de memoria previamente reservado con malloc, calloc o realloc.

free()

Mathematics

#include <math.h>

fmax: Floating-Point Maximum

double fmax(double x, double y);

Devuelve el mayor de dos valores en coma flotante.

fmax()

pow: Power

double pow(double base, double exponent);

Calcula la potencia de base elevada a exponent.

pow()

sqrt: Square Root

double sqrt(double arg);

Calcula la raíz cuadrada de un número.

sqrt()

atan2: Arc Tangent (2 arguments)

double atan2(double y, double x);

Calcula la arcotangente de y/x considerando el cuadrante correcto.

atan2()

cos: Cosine

double cos(double arg);

Calcula el coseno de un ángulo en radianes.

cos()

sin: Sine

double sin(double arg);

Calcula el seno de un ángulo en radianes.

sin()

String handling

#include <string.h>

strcspn: String Complement Span

size_t strcspn(const char *dest, const char *src);

Devuelve la longitud deñ segmento inicial de dest que no contiene ninguno de los caracteres de src.

strcspn()

strcmp: String Compare

int strcmp(const char *lhs, const char *rhs);

Compara dos cadenas lexicográficamente. Devuelve un valor menor que 0 si lhs es menor que rhs, 0 si son iguales, o mayor que 0 si lhs es mayor que rhs.

strcmp()

strcpy: String Copy

char *strcpy(char* restric dest, const char* restrict src);

Copia la cadena src en dest, incluyendo el carácter nulo '\0'. Devuelve un puntero a dest.

strcpy()

Character Type

#include <ctype.h>

toupper: To Upper Case

int toupper(int ch);

Convierte un carácter a mayúsculas, si es una letra minúscula. Si no lo es, devuelve el carácter sin cambios.

toupper()