#270 strcpy no tiene en cuenta el \0 para las cadenas. Haz un memset antes por si acaso.
#2 Muchas gracias por el aporte, hace años que no toco C y me ha ido de perlas leerme tus entradas para refrescar la mente, ya que ahora tengo que volver a tocar C + ASM y necesitaba recuperar conceptos.
Vengo a preguntar una cosa que quiero que no se tome a mal. Pero hace tiempo que me pregunto ¿para que sigue valiendo C ademas de programación de sistemas/compiladores?. ¿La gente sigue programando con punteros?
Lo digo porque a todos los programadores que conozco de C++ utilizan la STL o otras librerías y C no lo he visto nunca a la hora de programar software. Tengo poca experiencia, pero ¿tiene mas utilidades C?
#273 en la programación de hardware, por ejemplo, C sigue siendo el boss. Ha habido intentos de empezar a usar javascript o python pero al final los principales manufacturers como texas instruments o microchip siguen exigiendo el uso de C, ya que al fin y al cabo es programación a bajisimo nivel
#274 Vale ok, cierto se me había olvidado. Pero, ¿este lenguaje tiene futuro a la hora de buscar trabajo con el, siendo senior en C o algo así? La mayoría de ofertas piden proficient en C++, Java, C#...
#275 Hombre, raro sería que te pidiesen C, a no ser que sea para programar hardware ya digo. Pero es que de C a C++ es un paso orientando a la POO, con lo que pidiendo C++ ya se cubren las espaldas, porque "sabes" Java, y cualquier otro lenguaje orientado a objetos, aunque no te des cuenta.
#280 con java? nunca xD esto es C, y al final he ido dejando de lando el continuar con C++.
De todos modos si sabes ya C y necesitas el empujón a C++, mirate el Apendice B de este documento (pagina 144)
http://www.albertogarcia.info/libros/sdl/%5Bebook%5DProgramacion%20de%20videojuegos%20con%20SDL.pdf
#281 En la uni haremos POO con java, por eso lo decia jaja pero bueno, tirare con el Thinking on Java y a volar
#279 Ya, ya. Lo que me refiero es que no conozco a nadie que se ponga a programar con punteros, si no, con librerías de C++ que facilitan el trabajo. Por eso mi duda sobre C. Gestionar la memoria es un coñazo, hay que tener los conceptos muy claros para hacerlo correctamente y no cagarla. Aun que es más eficiente y los compiladores como gcc no permiten pifias muy gordas.
#283 De hecho, hay uno señores que programaron un juego 3D en ensamblador y de 60 FPS no bajaba pasara lo que pasara. Todo depende del tiempo que tengas y las ganas que tengas... Yo estoy usando SpriteKit para chanchullera en Swift y noto que de iP6 a iP5s ya crea algo de lag...
Pero sí, todo el mundo dejamos al garbage colector que nos haga el trabajo sucio xD
#283 Pues no se que gente conocerás que no use punteros en su día a día en C++, porque vamos, es una de las cosas básicas. Gestionar la memoria no es un coñazo; si estás utilizando C++ se entiende que sabes como funciona el tema, sino ahí tienes Java o cualquier otro lenguaje orientado a objetos.
#288 Si compilas bajo linux, siempre que no te haya dado error al compilar..., da igual la extension.
Vease si te ha salido algo tipo programa.o no te preocupes haz ./programa.o
En Linux las extensiones no tienen nada que ver con Windows. En Windows la extension define el tipo de programa o fichero que "es". En Linux la extension no es mas que otra parte del nombre.
Por cierto #1 has pensado en dar un poco el tema de interrupciones? Justo tuve que hacer una practica este viernes de programacion de Interrupciones, podria poner el codigo aquí.
Para enviar interrupciones, desde otra consola de linux, podeis enviar con el comando
kill -numeroInterrupcion IDproceso
Por ejemplo, si el proceso es el pid 3376 y queremos enviar una interrupcion n 12
kill -12 3376
Cuando el programa finalice, veremos que muestra que ha recibido 2 o 3 interrupciones.
Si acaba por tiempo - saldra
La señal 12 que hemos enviado + SIGALRM + SIGINT
Si finalizamos con CTRL+C
La señal 12 que hemos enviado + SIGINT
La funcion signal (numInterrupcion,funcionalaqueredirigimos) nos permite reasignar la funcion de la interrupcion.
Por ejemplo la SIGINT (CTRL + C) podemos reasignarla a que cuando el usuario pulse CTRL + C muestre un mensaje por pantalla en vez de finalizar el programa. Ej si tenemos una funcion que muestre un mensaje llamada printamensaje, si queremos redirigir el control +c
signal (SIGINT, printamensaje) o signal(2,printamensaje)
Si queremos desde dentro del programa lanzar una interrupción, lo haremos con raise y el numero o alias de la interrupción. Por ejemplo si quisieramos enviarnos una interrupcion de matar proceso podriamos enviar la SIGKILL (lo mismo que kill -9 pid) haciendo un raise(SIGKILL)
#290 quitate eso!! caca , eso es caca xD en verdad para tener vista no se .. ponte windows 7 te irá muchisimo mejor
Tengo que hacer un programa para calcular la raíz cuadrada y he hecho esto:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main(void){
int num;
double resultat;
printf("Escriu un nombre: \n"); scanf("d%", &num);
resultat=sqrt(num);
if(num>0)
printf("Resultat: %d \n", resultat);
else
printf("Error!");
system ("pause");
return 0;
}
Pero no me la calcula bien :S seguramente sera un error muy tonto pero no lo veo.
#295 Pon un Float en vez de un double, que ahora no recuerdo si double permite decimales.
scanf("d%", &num);
Tienes al revés el %d y cuando trabajas con doubles tienes que poner %f, así que
printf("Resultat: %d \n", resultat);
sería
printf("Resultat: %f \n", resultat);
.
#298 Gracias, que error más tonto u.u pero aún arreglando eso el resultado que me da no es el correcto
#299 Que raro, a mi el programa me funciona a la perfección haciendo esos dos cambios. En si que error te sale ?