Anuncios Google

Recopilación de samples en C de TheTooxicoo

Buenas coders.

He decidido crear un post en el que hiré recopilando mis samples de C. Los samples son el código fuente de un programa para que un coder pueda leerlo, entenderlo y aprender. Están todos comentados por mí de manera clara e intentando que se entienda.

Por lo tanto tan solo los teneis que compilar y ejecutar para ver el resultado. Para compilar un código fuente C en Linux se hace con este comando (tomando de ejemplo el 'Hola mundo'):

gcc -o "Hola mundo" "Hola mundo.c"

Y se ejecuta así (estando ya en la carpeta que contiene el 'Hola mundo'):

./"Hola mundo"

 

ÍNDICE

  1. Hola mundo
  2. Introducir edad
  3. Introducir altura
  4. Introducir nombre
  5. Introducir nombre, edad y altura
  6. Introducir 3 datos separados por espacios
  7. Pirámide de números
  8. Manejo de ficheros

 

1. Hola mundo

// -----------------------
// Hola mundo.c
// -----------------------
// By TheTooxicoo
// -----------------------
// TheTooxicooathotmail [dot] com
// -----------------------
 
 
#include <stdio.h> // Incluimos la librería 'stdio'
 
int main() // Declaramos el bucle principal 'main'
{ // Iniciamos la definición
	printf( "Hola mundo\n" ); // Imprimimos un string
	return 0; // Hacemos que la función retorne '0' (cero)
} // Cerramos la definición

 

2. Introducir edad

// -----------------------
// Introducir edad.c
// -----------------------
// By TheTooxicoo
// -----------------------
// TheTooxicooathotmail [dot] com
// -----------------------
 
 
#include <stdio.h>
 
int main()
{
  int edad; // La edad debe ser un número entero
 
  printf( "Introduce tu edad: " );
  scanf( "%i", &edad );
  printf( "Tienes %i años.\n", edad );
 
  return 0;
}

 

3. Introducir altura

// -----------------------
// Introducir altura.c
// -----------------------
// By TheTooxicoo
// -----------------------
// TheTooxicooathotmail [dot] com
// -----------------------
 
 
#include <stdio.h>
 
int main()
{
  float altura; // La altura es un número con decimales
 
  printf( "Introduce tu altura (en metros): " );
  scanf( "%f", &altura );
  printf( "Mides %.2f metros.\n", altura ); // Imprimimos la altura mostrando 2 decimales (%.2f)
 
  return 0;
}

 

4. Introducir nombre

// -----------------------
// Introducir nombre.c
// -----------------------
// By TheTooxicoo
// -----------------------
// TheTooxicooathotmail [dot] com
// -----------------------
 
 
#include <stdio.h>
 
int main()
{
  char nombre[15];
 
  printf( "Introduce tu nombre: " );
  scanf( "%s", nombre ); // Como es un array no hay que poner '&'
  printf( "Te llamas %s.\n", nombre );
 
  return 0;
}

 

5. Introducir nombre. edad y altura

// ----------------------------------
// Introducir nombre, edad y altura.c
// ----------------------------------
// By TheTooxicoo
// ----------------------------------
// TheTooxicooathotmail [dot] com
// ----------------------------------
 
 
#include <stdio.h>
 
int main()
{
  char nombre[15];
  int edad;
  float altura;
 
  printf( "Introduce los datos:\n" );
  printf( " - Nombre: " );
  scanf( "%s", nombre );
  printf( " - Edad: " );
  scanf( "%i", &edad );
  printf( " - Altura(m): " );
  scanf( "%f", &altura );
  printf( "Te llamas %s, tienes %i años y mides %.2fm.\n", nombre, edad, altura );
 
  return 0;
}

 

6. Introducir 3 datos separados por espacios

// -------------------------------------------
// Introducir 3 datos separados por espacios.c
// -------------------------------------------
// By TheTooxicoo
// -------------------------------------------
// TheTooxicooathotmail [dot] com
// -------------------------------------------
 
 
#include <stdio.h>
 
int main()
{
  int a, b, c;
 
  printf( "Introduce 3 números enteros separados por espacios: " );
  scanf( "%i %i %i", &a, &b, &c );
  printf( "Datos introducidos:\n" );
  printf( " > 1ero: %i\n", a );
  printf( " > 2ndo: %i\n", b );
  printf( " > 3ero: %i\n", c );
 
  return 0;
}

 

7. Pirámide de números

// -----------------------
// Pirámide de números.c
// -----------------------
// By TheTooxicoo
// -----------------------
// TheTooxicooathotmail [dot] com
// -----------------------
 
 
#include <stdio.h>
 
int main()
{
  int pisos, i, j;
 
  printf( "Números de pisos de la pirámide: " );
  scanf( "%i", &pisos );
 
  for( i=1; i<=pisos; i++ )
  {
    for( j=1; j<=i; j++ )
    {
      printf( "%i ", j );
    }
    printf( "\n" );
  }
 
  return 0;
}

 

8. Manejo de ficheros

// -----------------------------------------
// Manejo de archivos.c
// -----------------------------------------
// By TheTooxicoo
// -----------------------------------------
// TheTooxicooathotmail [dot] com
// -----------------------------------------
 
 
#include <stdio.h>
#include <stdlib.h>
 
void leer_archivo( char ruta[30] ) // Le damos 30 caracteres para la ruta (este valor puede variar).
{
  FILE *archivo;
  char caracter;
 
  archivo = fopen( ruta, "r" ); // Abrimos el archivo en modo lectura ("r").
 
  if( archivo == NULL ) // Si el archivo no existe se muestra un error.
  {
    printf( "Error de apertura del archivo.\n" );
  }
  else // Si el archivo existe se muestra en pantalla.
  {
    printf( "El contenido del archivo es:\n" );
 
    while( feof( archivo ) == 0 ) // Mientras no se llegue al caracter de fin de archivo (EOF) leer caracter a caracter.
    {
      caracter = fgetc( archivo );
      printf( "%c", caracter );
    }
  }
 
  fclose( archivo ); // Muy importante cerrar el archivo al acabar de usarlo.
}
 
int main(  ) // Ejemplo de como utilizar esta función.
{
  leer_archivo( "prueba" ); // En este caso el archivo se llama 'prueba' y está en la carpeta del ejecutable
  return 0;
}



Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de User170294

Actualización del post

Actualización del post (sáb, 30 de junio):

  • Nuevo sample: Manejo de archivos

Espero que os sea de ayuda :D

Imagen de m.rr

// ----------------------- //

// -----------------------
// Hola mundo.c
// -----------------------
// By TheTooxicoo
// -----------------------
// TheTooxicooathotmail [dot] com
// -----------------------
 
 
#include <stdio.h> // Incluimos la librería 'stdio'
 
int main() // Declaramos el bucle principal 'main'
{ // Iniciamos la definición
	printf( "Hola mundo\n" ); // Imprimimos un string
	return 0; // Hacemos que la función retorne '0' (cero)
} // Cerramos la definición

¿Sólo con esto ya funcionaría?

Muchas gracias y buen post

Imagen de User170294

Si lo compilas funciona

No entiendo muy bien a qué te refieres...

Si compilas ese código tal y como esta te dará un ejecutable correcto.

Imagen de m.rr

Siento no explicarme bien, me

Siento no explicarme bien, me refiero a que si imprimiria el nombre en una pantalla sin cerrarse y habría que cerrarla manualmente. Lo digo que yo vengo de Lua y como no veo while true do no se si se cerraria cuando mostrase eso en pantalla...

Gracias

Imagen de User170294

No hace falta.

Con C y en Linux no es necesario, el programa no se cierra solo.

Imagen de anxoganso

pon debajo de printf(""); un

pon debajo de printf("");

un sistem("PAUSE");

Imagen de User170294

Eso será en Windows y

Eso será en Windows y añadiendo las librerías pertinentes.

En Linux está de más hacer eso.

¿Has compilado y probado?

Imagen de m.rr

En Windows si necesitas poner

En Windows si necesitas poner system("PAUSE") si no no va, por eso lo decia muchas gracias

Imagen de the dragon lives

getchar

la función getchar también sirve y es estándar (buscad siempre las funciones estándar puede ayudar mucho a encontrar mas respuestas en la red y facilita portar el código a otros sistemas).

Imagen de User170294

La verdad, si vas a programar

La verdad, si vas a programar en C te recomiendo que lo hagas en Linux. Cualquier programador con dos dedos de frente te dirá lo mismo.


Imagen de m.rr

¿Algún IDE me recomiendas

¿Algún IDE me recomiendas Tooxicoo?

 

Imagen de User170294

Más que un IDE te recomiendo

Más que un IDE te recomiendo utilizar un editor de textos avanzado. Yo uso Kate y estoy contentísimo. Para compilarlo hago como te he puesto al principio del post.

Si aún así prefieres utilizar un IDE te recomendaría Code::Blocks.

De todos modos si no estás satisfecho con ninguno de ellos vete probando diferentes y si no los quieres los desinstalas con un:

sudo apt-get remove [nombreDelPrograma]

Así de facil :D


Imagen de m.rr

Vale, al finatl me instalo el

Vale, al finatl me instalo el Slax pero quiero tener los dos. ¿Sabes si se puede hacer eso?

Muchas gracias

Imagen de User170294

Por supuesto. Es un programa

Por supuesto. Es un programa más y puedes tener los que quieras.

Para instalar Kate:

sudo apt-get install kate

Y listo :D

Imagen de m.rr

Pero sudo apt-get install

Pero sudo apt-get install kate

 

funciona en Slax? Pensaba yo que era solo para Ubuntu

 

Imagen de User170294

Confusión mía

Perdona jaja pensé que Slax sería un editor de texto no una distro de Linux xD

Prueba a ver, no pierdes nada.

Imagen de _Dark_Cloud_

Buenas

Pues no estoy deacuerdo contigo, no sé por qué se le tiene tanta manía a Windows... Existen alternativas multiplataforma (como Code::Blocks), para evitar estas discusiones absurdas.

Un saludo.



¡Visca el Barça y Viva España!

Imagen de User170294

Pues porque...

  1. Permite modificar su código fuente para adaptarlo o experimentar.
  2. Nadie te puede obligar a actualizar el software.
  3. Posee mayor seguridad contra infecciones.
  4. Es altamente resistente a caidas del sistema y raramente necesita reiniciar.
  5. Utiliza formato de archivos abierto.
  6. Usarlo fomenta la diversidad y la competencia en la industria del software.
  7. No sólo ha alcanzado a sus rivales propietarios, sino que avanza más rápido.
  8. Proporciona a sus usuarios la oportunidad de contribuir a su desarrollo.

Bueno, estas son unas pocas razones.

Saludos.


Imagen de _Dark_Cloud_

Esas son tus razones para usarlo, no las razones por las que todos tengamos que hacerlo. No me parece que para ser un "programador con dos dedos de frente", haga falta usar linux y ser anti-windows, eso es a lo que yo me refiero. Que cada uno use el que le guste (Por eso uso Win 7, Ubuntu 12.04 y Mac OS X Lion), no hay más. Un saludo, no me tomes a mal :P.



¡Visca el Barça y Viva España!

Imagen de User170294

En ningún momento he dicho

En ningún momento he dicho que halla que ser anti-windows aunque la verdad, yo no veo lógico que un programador (ojo un programador, no un usuario de windows que no programa) escoja un sistema que no le ofrece seguridad y que no puede moldear a su gusto.

De todos modos siempre hay excepciones y está claro que esta vez tu eres la excepción. Y si no pregunta en esta web por ejemplo cuantos coders utilizan habitualmente cualquier distribución de Linux.

Saludos.


Imagen de Almamu

No solo tiene que ver la

No solo tiene que ver la seguridad, puesto que eso siempre va de tu parte, nunca del sistema, almenos no en tu propio programa. Yo soy programador de C, C++, C#, Java, PHP, VB y ASM y en muchos de ellos elijo Windows, principalmente por la facilidad que tiene, por ejemplo C#, para programar en comparación con otros. Las APIs de Windows son bastante eficientes y siempre que te haga falta hacer algo multiplataforma tiras de C/C++ y librerías open source multiplataforma, nada de un programador con dos dedos de frente usaría Linux, es la afirmación más estúpida que he oído y que espero no volver a oir. Que tu prefieras Linux no quiere decir que los demás lo hagan.


Imagen de m.rr

Ya pero mi ordenador es una

Ya pero mi ordenador es una castaña xD y no le va Ubuntu, OpenSUSE le va a trompicones a veces funciona a veces no... El único que me falta por probar es Fedora, pero me da a mi que no va a  funcionar...

Imagen de Dioni0396

No es por discrepar

pero con un pentium 4 a 1GHZ y 512 mb de ram ya tienes linux de sobra, instalate Xubuntu.

Imagen de m.rr

Dioni en serio, cuando digo

Dioni en serio, cuando digo que es una castaña es porque lo es xD, si te digo que no llega ni al Ghz y es pentium III...

Imagen de m.rr

Muchas gracias Dioni lo

Muchas gracias Dioni lo miraré. Otro de los problemas de pasarme a Linux es:

¿Tiene algo como Camtasia Studio? ¿PMF Creator puede correrlo? Es que yo hago Gameboots para la PSP y al menos que haya...

Imagen de Dioni0396

Como veo que vas a usar slax

Usalo en un pen el Slax o instalalo como mejor veas.

Usa wine para usar programas que no existan para linux como pmf creator, pero cantasia para que sirve?

Imagen de m.rr

No, Camtasia 7 o cualquier

No, Camtasia 7 o cualquier editor de video. Y usare Slax en un pen y me quedare con Windows para los juegos.

Imagen de Dioni0396

;)

Si supongo que si tiene que haber un editor de video

Juegos, que juegos puedes correr con ese ordenador? O.O

Imagen de m.rr

Simpsons Hit&Run y así

Simpsons Hit&Run y así rememorar las partidas en la PS2, Imperium, Age of Empires, etc. Sobre todo los juegos del 2003.

Imagen de User170294

Haz como yo. Consiguete el

Haz como yo. Consiguete el Wubi y metete el Xubuntu. Mucho más ligero que Ubuntu i exactamente igual de funcional ;)

Además si lo quieres desinstalar simplemente como si fuera cualquier otro programa :D


Imagen de anxoganso

Wubi no esta mal para

Wubi no esta mal para probarlo pero lo mejor es k lo instale de verdad aparte como mucho puedes poner el disco duro virtual de 30 gb


Imagen de User170294

Instalarlo de verdad puede

Instalarlo de verdad puede traer muchos problemas (a mí me ha traido muchos) a menos que controles al 100% el tema de las particiones (cosa que yo no controlo).

¿Acaso te falta espacio con 30gb? (que se pueden ampliar mucho más por cierto)

El resultado va a ser similar.


Imagen de Dioni0396

Pero creo la potencia

No es la misma, lei por ahi que al no hacer la particion no es 100% igual que si lo hicieras en particion.

Imagen de anxoganso

Eso es verdad funciona mas

Eso es verdad funciona mas lento con wubi te recomiendo k lo instales directamente aparte lo de las particiones tampoco es tan dificil


Imagen de m.rr

Probaré Wubi. Gracias

Probaré Wubi.

Gracias

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.