Mi codigo ha quedado asi:
Código c:
Ver original#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
void decimalb (char *n);
void decimalo (char *n);
void decimalh (char *n);
void convertirb (char *n);
void convertiro (char *o);
void convertirh (char *h);
void main()
{
char a[100];
char i, base, convertir, fuera=0;
for (i=0; i<=100; i++)
{
if (a[i]!='*')
{
fuera=0;
}
if (a[i]=='*')
{
fuera++;
}
}
printf ("En que base esta?\n");
printf ("A que base la quieres convertir? (binario, octal, decimal o hexadecimal\n");
if (base=='B')
{
decimalb(a);
}
if (base=='O')
{
decimalo(a);
}
if (base=='H')
{
decimalh(a);
}
if (convertirb=='B')
{
convertirb(a);
}
if (convertirb=='O')
{
convertiro(a);
}
if (convertirb=='H')
{
convertirh(a);
}
}
void decimalb (char *n)
{
int j=0, contador=0, i, decimalb=0;
for (i=99; i>=0; i--)
{
if (n[i]==1)
{
decimalb=decimalb+(n[i]+(2*contador));
contador++;
}
if (n[i]==0)
{
decimalb=decimalb+n[i]+(2*contador);
contador++;
}
}
for (i=0; i<=99; i++)
{
n[i]='\0';
}
n[0]=decimalb;
}
void decimalo (char *n)
{
int j=0, contador=0, i, decimalo=0;
for (i=99; i>=0; i--)
{
if (n[i]==1)
{
decimalo=decimalo+(n[i]+(8*contador));
contador++;
}
if (n[i]==0)
{
decimalo=decimalo+n[i]+(8*contador);
contador++;
}
}
for (i=0; i<=99; i++)
{
n[i]='\0';
}
n[0]=decimalo;
}
void decimalh (char *n)
{
int j=0, contador=0, i, decimalh=0;
for (i=99; i>=0; i--)
{
if (n[i]=='A')
{
n[i]=10;
}
if (n[i]==1)
{
decimalh=decimalh+(n[i]+(16*contador));
contador++;
}
if (n[i]==0)
{
decimalh=decimalh+n[i]+(16*contador);
contador++;
}
}
for (i=0; i<=99; i++)
{
n[i]='\0';
}
n[0]=decimalh;
}
void convertirb (char *n)
{
int i=0, binario=0;
for (i=0; n[i]==1;)
{
binario=binario+(n[i]%2);
n[i]=binario;
}
}
void convertiro (char *n)
{
int i=0, octal=0;
for (i=0; n[i]==1;)
{
octal=octal+(n[i]%8);
n[i]=octal;
}
}
void convertirh (char *n)
{
int i=0, hexadecimal=0;
for (i=0; n[i]==1;)
{
hexadecimal=hexadecimal+(n[i]%16);
n[i]=hexadecimal;
}
}
Los errores son los siguietnes.
1>------ Operación Generar iniciada: proyecto: 5Ejercicio28, configuración: Debug Win32 ------
1>Compilando...
1>5Ejercicio28.cpp
1>d:\nestor\a.s.i\programación\ejercicios2\5ejerci cio28\5ejercicio28\5ejercicio28.cpp(20) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\stdio.h(306) : vea la declaración de 'scanf'
1>d:\nestor\a.s.i\programación\ejercicios2\5ejerci cio28\5ejercicio28\5ejercicio28.cpp(34) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\stdio.h(306) : vea la declaración de 'scanf'
1>d:\nestor\a.s.i\programación\ejercicios2\5ejerci cio28\5ejercicio28\5ejercicio28.cpp(37) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\stdio.h(306) : vea la declaración de 'scanf'
1>d:\nestor\a.s.i\programación\ejercicios2\5ejerci cio28\5ejercicio28\5ejercicio28.cpp(54) : error C2446: ==' : no hay conversión de 'int' en 'void (__cdecl *)(char *)'
1> La conversión de un tipo integral a un tipo de puntero requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función
1>d:\nestor\a.s.i\programación\ejercicios2\5ejerci cio28\5ejercicio28\5ejercicio28.cpp(54) : error C2040: '== : 'void (__cdecl *)(char *)' se diferencia en los niveles de direccionamiento indirecto de 'int'
1>d:\nestor\a.s.i\programación\ejercicios2\5ejerci cio28\5ejercicio28\5ejercicio28.cpp(59) : error C2446: ==' : no hay conversión de 'int' en 'void (__cdecl *)(char *)'
1> La conversión de un tipo integral a un tipo de puntero requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función
1>d:\nestor\a.s.i\programación\ejercicios2\5ejerci cio28\5ejercicio28\5ejercicio28.cpp(59) : error C2040: '== : 'void (__cdecl *)(char *)' se diferencia en los niveles de direccionamiento indirecto de 'int'
1>d:\nestor\a.s.i\programación\ejercicios2\5ejerci cio28\5ejercicio28\5ejercicio28.cpp(64) : error C2446: ==' : no hay conversión de 'int' en 'void (__cdecl *)(char *)'
1> La conversión de un tipo integral a un tipo de puntero requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función
1>d:\nestor\a.s.i\programación\ejercicios2\5ejerci cio28\5ejercicio28\5ejercicio28.cpp(64) : error C2040: '== : 'void (__cdecl *)(char *)' se diferencia en los niveles de direccionamiento indirecto de 'int'
1>El registro de compilación se guardó en el "file://d:\Nestor\A.S.I\Programación\EJERCICIOS2\5Ejercici o28\5Ejercicio28\Debug\BuildLog.htm"
1>5Ejercicio28 - 6 errores, 3 advertencias
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========
Llevo media hora con este error y no logro entender por qué puede ser.