Está en la página 1de 2

Lenguaje C - Resumen rápido

(Un resumen para aprendices, para ayudar a • Para enlazar varias condiciones: y (&&), • Formatos más habituales: similares a strcpy
recordar funciones que pueden resultar o (||), no (!): if ((x==5) && (y==1)) "printf" • Asigna una valor a una cadena de
complejas, como las de cadenas y ficheros) printf("Son 5 y 1"); • Devuelve: el número de datos leidos (0 texto (no se permite usar
= ninguno, EOF = error) construcciones como cadena="hola"
Un programa elemental while • Observaciones: en general, el nombre de salvo cuando se declara una
#include <stdio.h> • Repite mientras se cumpla una condición la variable se debe preceder de & (no es variable).
main() { (la condición se comprueba antes de necesario si se trata de un array) • Include: string.h
printf("Hola"); empezar a repetir). puts • Parámetros: la cadena de destino y
} • Ejemplo: while (x!=correcto) { • Escritura de una cadena en pantalla (con la cadena de origen
printf("Vuelve a intentar"); scanf("%d", avance de línea) • Devuelve: la cadena de destino,
Tipos de datos básicos &x); } • Ejemplo: puts("Hola"); modificada (se puede ignorar el
• Números enteros: int
• Tipos de condiciones y forma de • Devuelve: EOF en caso de error; un valor devuelto, porque el parámetro
enlazarlas: igual que para "if". valor no negativo si todo ha ido bien se modifica también)
• Números reales: float (simple precisión)
• Ejemplo: strcpy(nombre, "juan");
gets
y double (doble precisión)
do..while • Lectura de una cadena desde teclado strcat
• Caracteres: char
• Repite mientras se cumpla una condición • Añade un texto al final de una
• Operaciones habituales: suma (+), resta
• Ejemplo: gets(nombre);
(la condición se comprueba después de • Devuelve: NULL en caso de error; la cadena.
(-), multiplicación (*), división (/), resto haber dado la primera "vuelta"). cadena si todo es correcto • Include: string.h
de la división o "módulo" (%).
• Ejemplo: do { printf("Vuelve a intentar"); putchar • Parámetros: la cadena de destino y
• Operaciones abreviadas: incremento en scanf("%d", &x); } while (x!=correcto); la cadena a añadirle
una unidad (++), decremento en una • Escritura de una letra en pantalla
• Tipos de condiciones y forma de • Ejemplo: putchar('a'); • Devuelve: la cadena de destino,
unidad, incremento en varias unidades
enlazarlas: igual que para "if". • Devuelve: EOF en caso de error; el modificada (se puede ignorar el
(x+=2), decremento en varias unidades
carácter en caso contrario valor devuelto, porque el parámetro
(z-=3) y abreviaturas similares para las
getchar se modifica también)
demás operaciones (x*=5; z/=4;
y%=2;). Manejo básico de pantalla y • Lectura de una letra desde teclado • Ejemplo: strcat(saludo, " y familia");
strstr
teclado • Ejemplo: letra = getchar();
printf • Devuelve: EOF en caso de error; el • Comprueba si una cadena contiene
un texto.
Estructuras básicas • Escritura formateada en pantalla carácter en caso contrario
• Observaciones: no se analizan las letras • Include: string.h
if • Ejemplo: printf("El resultado es %d", x);
tecleadas hasta que se pulsa Intro • Parámetros: cadena y 'texto a
• Comprueba una condición. • Formatos más habituales: %d = número
buscar'
entero en decimal, %f = número real
• Ejemplo: if (x==5) printf("Vale 5"); • Devuelve NULL si no la contiene
• Tipos de condiciones posibles: Mayor
(coma flotante), %c = caracter, %s = Manejo de cadenas
cadena de texto, %x = número entero strlen
• Ejemplo:
que (>), menor que (<), mayor o igual if(strstr(cadena,"pepe")!=NULL);
en hexadecimal • Devuelve la longitud (número de letras
que (>=), menor o igual que (<=), strcmp
distinto de (!=), igual a (==).
• Devuelve: el número de caracteres almacenadas) en una cadena de texto,
escritos sin contar el carácter nulo final.
• Compara dos cadenas
• Si no se cumple la condición: else -> if
scanf • Include: string.h
(x==5) printf("Vale 5"); else printf("No • Include: string.h
• Lectura formateada desde teclado • Parámetros: la cadena a analizar • Parámetros: cadena1 y cadena2
vale 5");
• Ejemplo: scanf("%d", &x); • Devuelve: un número entero • Devuelve: un número entero (0 si
son iguales, 1 si no lo son).
• Ejemplo: int longitud = strlen("hola");
• Ejemplo: • Escribir cadena: fputs(cadena, • Parámetros: la cadena, la longitud • Parámetros: el bloque de datos, el
if(strcmp(cadena1,cadena2)==0); fichero) máxima, el identificador del fichero tamaño de cada dato, la cantidad
... • Saltar a una posicion:fseek(fichero, • Devuelve: NULL en caso de error; la de datos, el identificador del fichero
Manejo de ficheros salto, desde) ( el "desde" puede ser: cadena, si todo ha sido correcto • Devuelve: el número de datos leído
1. Resumen de ficheros SEEK_SET, SEEK_CUR, SEEK_END, para • Ejemplo: fgets(texto, 20, fichero); (en caso de error, será menor que
principio, actual o final del fichero) • Observaciones: conserva el avance de lo esperado)
Para manejar ficheros, siempre deberemos
• Saber la posicion actual: donde = línea (\n) al final de la cadena leída. • Ejemplo: fread(&ficha, sizeof(ficha),
realizar tres operaciones básicas:
ftell(fichero) fputs 1, fichero);
• Abrir el fichero.
• Leer un bloque de datos: • Guarda una cadena en un fichero. fwrite
• Leer datos de él o escribir datos en él. fread(&donde,tamaño_dato,cuanto • Guarda datos en un fichero.
• Parámetros: la cadena, la longitud
• Cerrar el fichero. s_datos,fichero); • Parámetros: el bloque de datos, el
máxima, el identificador del fichero
• Para declarar fichero: FILE* fichero; • Escribir un bloque de datos: tamaño de cada dato, la cantidad
• Devuelve: EOF en caso de error; el
• Para abrir un fichero: fichero = fwrite(&donde,tamaño_dato,cuanto último carácter escrito, si todo ha ido de datos, el identificador del fichero
fopen(nombreFichero, modo); Los s_datos,fichero); • Devuelve: el número de datos
bien
modos son:
o r Abrir sólo para lectura.
2. Explicación detallada de • Ejemplo: fputs(texto, fichero); guardados (en caso de error, será
• Observaciones: no añade avance de menor que lo esperado)
o w Crear para escribir. funciones de ficheros
línea (\n) al final de la cadena. • Ejemplo: fwrite(&arrayDeInt,
Sobreescribe el fichero si (Todas ellas en "stdio.h")
fgetc sizeof(int), 100, fichero);
existiera ya (borrando el fopen
• Lee un carácter desde un fichero. fseek
original). • Intenta abrir un fichero.
• Parámetros: el identificador del fichero • Salta a una cierta posición de un
o a Añade al final del fichero si • Parámetros: el nombre físico del fichero fichero.
existe, o lo crea si no existe. y el modo de apertura • Devuelve: EOF en caso de error; el
o + Se escribe a continuación de carácter leido (convertido a int), si todo • Parámetros: el identificador del
• Devuelve: un puntero a fichero (FILE*) fichero, el desplazamiento, el origen
los modos anteriores para si se ha podido abrir; NULL si no se ha ha ido bien
indicar que también queremos • Ejemplo: letra = fgetc(fichero); • Devuelve: 0 si se ha podido saltar;
conseguido.
modificar. Por ejemplo: r+ fputc otro valor si no se ha podido
• Ejemplo: fichero = fopen("datos.txt",
permite leer y modificar el • Guarda un carácter en un fichero. • Ejemplo: fseek(fichero, -10,
"rt");
fichero • Parámetros: el carácter, el identificador SEEK_CUR);
• Modos de apertura habituales: "rt" =
o t Abrir en modo de texto. del fichero • Valores de "origen" del salto:
lectura de un fichero de texto, "rb" =
o b Abrir en modo binario. • Devuelve: EOF en caso de error; el SEEK_SET (0, inicio), SEEK_CUR (1,
lectura de un fichero binario; "r+" (r+b o
• Obtener un carácter del fichero: carácter escrito, si todo ha ido bien actual), SEEK_END (2, final)
r+t) en vez de r si se quiere leer pero
caracter = fgetc(fichero) ftell
también escribir; "a" (at, ab) para añadir • Ejemplo: fputc('a', fichero);
• Escribir un carácter en el fichero: al final del fichero; "w" (wt, wb) para fscanf • Devuelve la posición actual en un
fputc(caracter,fichero) crear un fichero (borrando el actual, si fichero.
• Lee datos con formato desde un fichero,
• Escribir datos formateados en el fichero: existiera). de forma similar a "scanf" • Parámetros: el identificador del
fprintf(fichero,"formato", fclose fichero
• Ejemplo: fscanf("%d%d", &num1,
argumento1, argumento2...) • Cierra un fichero. &num2); • Devuelve: un entero largo (-1 en
• Leer de fichero: fscanf( fichero, • Parámetros: el identificador del fichero caso de error)
"formato", argumento1,....) • Devuelve: 0 si se ha podido cerrar; EOF fprintf • Ejemplo: posicion = ftell(fichero);
• Cerrar fichero: fclose(fichero) si no se ha podido • Guarda datos con formato en un fichero,
• Distinto de 0 si acaba el fichero: (www.aprendeaprogramar.com
• Ejemplo: fclose(fichero); de forma similar a "printf"
feof(fichero) Versión actual de este resumen: 0.11)
fgets • Ejemplo: fprintf(fichero, "Edad: %d",
• Leer linea en cadena: fgets(cadena, • Lee una cadena desde un fichero. edad);
cantidad , fichero) fread
• Lee datos desde un fichero.

También podría gustarte