Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: kichan en 11 Mayo 2005, 01:33 am



Título: Problemas con las funciones printf y exit en Dev C++
Publicado por: kichan en 11 Mayo 2005, 01:33 am
Resulta que tengo un programita en C++, que quiero compilarlo con el Dev C++,
les incluyo las dos librerias
#include <windows.h>
#include <stdio.h>

sin embargo igual me aroja errores con la funcion printf y exit, no se por que se supone que la funcion printf esta declarada en stdio.h  .me dice que hay un problema de linker.. o algo asi......??? ..help


Título: Re: Problemas con las funciones printf y exit en Dev C++
Publicado por: Griph en 11 Mayo 2005, 03:49 am
¿Qué versión del IDE Dev-C++ usás (acordate que no es un compilador, sino que simplemente un IDE simplemente del mingw32: /Dev-Cpp/mingw32/ puedes mirar los directorios /lib y /bin para informarte un poco)?

Al menos en la versión Dev-C++ 4.9.8.0 puedes probar lo siguiente:

Herramientas/Opciones del Compilador: vas a la siguiente:

--> Generación/Optimización de Código
    -->Compilador C:
Citar
                    --> Soportar todos los programas en C ANSI Estandar [Yes]
                    --> Soportar Preprocesadores Tradicionales de C [Yes]
                    --> Desactivar todos los Mensajes de Aviso (Warnings) [No]

Probá dejando ésas opciones de ésa forma.
Zheo escribió un texto sobre el Dev-C++ (ó Dev-Cpp) el cual está en la web de este foro o en el foro de programación general (leete la ayuda de la aplicación, siempre es útil).

Pequeño detalle:

Si bien la función "printf()":

Código:
#include <stdio.h>
int printf(const char *format...);

Uso:

Código:
#include <stdio.h>
printf("Cadena de texto");

Está declarada en el fichero de cabecera stdio.h, no ocurre lo mismo con "exit()":

Código:
#include <stdlib.h>
exit();

Está declarada en stdlib.h, y en los argumentos toma diversos valores (numéricos). Ejemplo:

Código:
exit(0); // termina el programa de modo normal.

Código:
exit(1); /* termina el programa de forma anormal (se usa generalmente cuando hacés una comprobación, y ésta da NULL o cero). */

Código:
exit(3); /* termina el programa abortandolo. */

Ésta última es abort():

Código:
#include <stdlib.h>
void abort(void);

Uso:

Código:
#include <stdlib.h>
abort(); // Te imprime en la salida estándar: "abnormal program termination"

Un saludo.

PD: podrías copiar y pegar en una cita el error específico que te el compilador.


Título: Re: Problemas con las funciones printf y exit en Dev C++
Publicado por: kichan en 11 Mayo 2005, 21:15 pm
la 4.9.8.0
mas o menos estos son los errores que me arroja

  [Warning] cannot find entry symbol _mainCRTStartup; defaulting to 00401000
  [Linker error] undefined reference to `printf'
     [Linker error] undefined reference to `exit'
  [Linker error] undefined reference to `_alloca'
  [Linker error] undefined reference to `__main'
  [Linker error] undefined reference to `memset'
  ld returned 1 exit status
 C:\Documents and Settings\Multimedia10\Escritorio\Makefile.win [Build Error]  [Proyecto1.exe] Error 1


Título: Re: Problemas con las funciones printf y exit en Dev C++
Publicado por: -Chago en 12 Mayo 2005, 00:45 am
Si lo estas compilando como C++ prueba:
#include <cstdlib>  en lugar de  #include <stdlib.h>

Suerte..


Título: Re: Problemas con las funciones printf y exit en Dev C++
Publicado por: Griph en 12 Mayo 2005, 03:35 am
El error está en otra parte del código, lo podrías postear.

Una pregunta ¿vos entendés lo que hace el código? o ¿simplemente intentas compilarlo sin saber nada de C?

Otra cosa ¿Revisaste que el Dev-C++ soporte las aplicaciones en C ANSI Estandar y los Preprocesadores tradicionales de C?


Título: Re: Problemas con las funciones printf y exit en Dev C++
Publicado por: Slasher-K en 12 Mayo 2005, 05:11 am
Si los soporta, y también tiene librerías Unicode.

Es muy probable que falle alguna librería. Desinstala el compilador y volvelo a instalar, o mejor pasate al lccwin32 :P.

Saludos.


Título: Re: Problemas con las funciones printf y exit en Dev C++
Publicado por: Pseudoroot en 13 Mayo 2005, 03:13 am
no se mucho sobre ese compilador ,  pero que ventajas tiene sobre Dev C++,  (IDE).   ?
Supongo que no es gratuito o si.?
de todos modos voy a ver que tal es ,buscando algo de informacion al respecto.


Título: Re: Problemas con las funciones printf y exit en Dev C++
Publicado por: -Chago en 13 Mayo 2005, 07:47 am
Personalmete creo q' DevCpp es de los compiladores mas practicos, lei q' usabas la version 4.9.8.0, ya salio la 4.9.9.2, supongo q' podria haber corregido posibles errores con versiones anteriores como la tuya..

Saludos..


Título: Re: Problemas con las funciones printf y exit en Dev C++
Publicado por: zheo en 15 Mayo 2005, 01:17 am
Cita de: Slasher Keeper , y también tiene librerías Unicode.
[quote

Creo que estás confundiendo términos. ANSI es un comité de estándares.
ASCII y UNICODE son formatos de representación de caracteres.

kichan  ,bBájate la última versión del Dev-C++ que, entre otras cosas, trae una nueva versión del compilador.


Título: Re: Problemas con las funciones printf y exit en Dev C++
Publicado por: Slasher-K en 15 Mayo 2005, 07:26 am
Citar
Conjunto de caracteres

La mayoría de funciones que usan cadenas en Windows NT/2000/XP se suministran en dos versiones: una para caracteres ANSI y otra para caracteres Unicode. Las funciones para ANSI tienen el sufijo "A", mientras que las funciones para Unicode tienen el sufijo "W". Podemos resolver este problema de dos maneras:

    * Declarar el nombre de la función con un sufijo.
    * Usar el parámetro CharSet en el atributo DllImport, una salida más elegante.

Veamos cómo quedan las declaraciones ahora:

[DllImport("Advapi32.dll", EntryPoint="GetUserName", CharSet=CharSet.Unicode)]

unsafe private static extern bool GetUserNameW(char * lpBuffer, int * nSize);
[DllImport("Advapi32.dll", EntryPoint="GetUserName", CharSet=CharSet.Ansi)]

unsafe private static extern bool GetUserNameA(sbyte * lpBuffer, int * nSize);

Observe que los tipos entregados varían según se use la versión para ANSI o Unicode:

    * "sbyte *" en las versiones para ANSI
    * "char *" en las versiones para Unicode


Fuente: MSDN Library
http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art77.asp


Título: Re: Problemas con errores de codigo en ejemplo CURP
Publicado por: urielseptim007 en 16 Abril 2012, 21:31 pm
HOLA, SOY  KUNU, MI PROBLEMA ES NO ENCONTRAR EL ERROR DE
DE ESTE CODIGO,!! SE LO AGRADARECERE IFINITAMENTE,


#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>

//Prototipo de funcion
    int i,b;
void mayus(char s[])
{
 
for(i=0; i<strlen(s);i++)
s=toupper(s);
}
main()
{
      char apa [20], ama[20],nom[20],fna[9],rfc[11];
                     do{
                     system("cls");
                 printf("A.PATERNO:");gets(apa);mayus(apa);
                 printf("A.MATERNO:");gets(ama);mayus(ama);
                 printf("NOMBRE(S):");gets (nom); mayus(ama);
                 printf("F:Nacimiento:");gets(fna);
                 rfc[0]=apa[0];
                 }
                 for(i=0,b=0>);
                 s(1)=toupper
                 switch(apa)
                                    case 'A':b1=;break
                                    case 'E':b1=;break
                                    case 'I':b1=;break
                                    case 'O':b1=;break
                                    case 'U':b1=;break
                                    default:rfc[1]='U'; b=1: break;
                                    default:rfc[1]=apa[1];
                                    }
                                    // LLAMADO
                                    rfc[2]=ama(0);
                                    rfc[3]=num(0);
                                    rfc[4]=fna(6);
                                    rfc[5]=fna(7);
                                    rfc[6]=fna(3);
                                    rfc[7]=fna(4);
                                    rfc[8]=fna(0);
                                    rfc[9]=fna(1);
                                    rfc[10]=\'
                                   
                       system("cls");
              printf(%s%s%s\n",nom,apa,ama");
              getch();
              }