[C con Clase] ayuda
Steven Davidson
steven en conclase.net
Jue Mar 15 04:11:15 CET 2007
Hola David,
El pasado 2007-03-15 00:49:37, pipe bmx escribió:
pb> *tebgo un problema con el programa que se presenta a continuacion y no se
pb> porque es he revisado la sintaxis y si es un errror de librerias pero no he
pb> dado con nada . utilizo dev c y el erro que me muestra al compilar es el
pb> siguiente :*
pb> *15 ambiguous overload for `std::istream& >> const char[3]' operator*
pb> *y el codigo es el siguiente*
pb> *:*
pb> *#include <iostream>
pb> #include <stdlib.h>
pb> #include <stdio.h>
pb> #include <conio.h>*
pb> *using namespace std;*
pb> *main()
pb> {
pb> int num1,menor,num2;
pb> cout<<"\n Escriba el primer numero a evaluar y pulse enter \n";
pb> cin>>"%d",&num1;
pb> cout<<"\n Escriba el segundo numero a evaluar y pulse enter \n";
pb> cin>>"%d",&num2;
pb> if(num1<num2){menor=num1;}
pb> else if(num1>num2){menor=num2;}
pb> else{menor=0;}
pb> cout<<"\n el menor entre %d y %d es %d \n",num1,num2,menor;
pb> getch();
pb> }*
Siento decir que estás mezclando la manera de hacer E/S con 'printf()' y 'scanf()' con la manera de 'cout <<' y 'cin >>'. Escribes:
cin >> "%d", &num1;
Cuando deberías escribir:
cin >> num1;
O si usas ANSI C, entonces,
scanf( "%d", &num1 );
Lo mismo ocurre con las demás sentencias. Por ejemplo, escribes:
cout << "\n el menor entre %d y %d es %d \n", num1, num2, menor;
O bien usas 'printf()' o bien 'cout >>', pero no ambas conjuntamente. La solución sería:
cout << "\n el menor entre " << num1 << " y " << num2 << " es " << menor << " \n";
Usando 'printf()', obtendremos:
printf( "\n el menor entre %d y %d es %d \n", num1, num2, menor );
Revisa el tutorial al final de nuestro curso de C++. Puedes ir directamente a: http://c.conclase.net/curso/index.php?cap=800 e incluso el apéndice C: http://c.conclase.net/curso/index.php?cap=902
Espero haber aclarado la duda.
Steven
Más información sobre la lista de distribución Cconclase