Bienvenido: ( Identificarse | Registrarse )      
Foros de Trucos Windows
 
Closed TopicStart new topicStart Poll

Outline · [ Estándar ] · Lineal+

> me faltan argumentos pero no se cuales

ornitorrinco's
post May 14 2007, 09:12 PM
Publicado: #1


Maestro Perfecto
Group Icon

Grupo: Moderadores
Mensajes: 2.029
Registrado: 1-May 05
Desde: un bilbaino no solo vive donde quiere, sino que nace donde le da la gana
Miembro nº: 120.978



pues eso, en el siguiente codigo en c++ segun el error de g++ me faltan argumentos.
CODE
#include <iostream>
#include <QApplication>
#include <QPushButton>
using namespace std;

// abre una ventana(la funcion incorrecto hace lo mismo)

int correcto(int argc, char *argv[]){
QApplication app(argc, argv);
QPushButton hello("YES!");
hello.resize(100, 30);
hello.show();
return app.exec();
}

int incorrecto(int argc, char *argv[]){
QApplication app(argc, argv);
QPushButton hello("NO!");
hello.resize(100, 30);
hello.show();
return app.exec();
}

//aqui no defino los argumentos int... y char... ya que al hacer una aplicacion gui como main debo ponerlos en main.¿hay algo que no entienda?(como //que en ese caso se les darian unos valores especificos, etc..

int main() {
string y = "uops";
cout << "Respondeme yes: " << endl;
cin >> y;
if (y == "yes") {
 correcto();
}
else {
 incorrecto();
}
return 0;
}


al menos eso deduzco del siguiente error:
CODE
main.cpp: In function ‘int main()’:
main.cpp:5: error: muy pocos argumentos para function ‘int correcto(int, char**)’
main.cpp:25: error: en este punto en el fichero
main.cpp:12: error: muy pocos argumentos para function ‘int incorrecto(int, char**)’
main.cpp:28: error: en este punto en el fichero
make: *** [main.o] Error 1


EDITO: he comprobado que si las funciones las meto dentro del if funciona, ¿que razón hay para ello?
CODE
#include <iostream>
#include <QApplication>
#include <QPushButton>
using namespace std;

int main(int argc, char *argv[]) {
string y = "Qt";
cout << "Dime yes: " << endl;
cin >> y;
if (y == "yes"){
 QApplication app(argc, argv);
 QPushButton hello("YES");
 hello.resize(100, 30);
 hello.show();
 return app.exec();
}
else {
 QApplication app(argc, argv);
 QPushButton hello("NO");
 hello.resize(100, 30);
 hello.show();
 return app.exec();
}
}

PD: no se porque en el code las tabulaciones aparecen tan pequeñas.


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
rob1104
post May 15 2007, 12:00 AM
Publicado: #2


Xbox Live... The best thing ever happened around videogames
Group Icon

Grupo: Moderadores
Mensajes: 1.665
Registrado: 7-March 05
Desde: Matamoros, Tamaulipas, Mexico
Miembro nº: 93.342



Lo que pasa es qeu al llamar a la funcion la estas mandando llamar sin argumentos, no entiendo porque declaras a las funciones correcto e incorrecto con: (int argc, char *argv[]) si despues las mandas llamar y no les pasas ningun argumento, recuerda que esos argumentos son parametros de la linea de comandos. argc = contiene el número de argumentos recibidos por el programa, debemos considerar que siempre será el número de argumentos pasados más 1, ya que el primer agumento se reserva para contener el nombre del programa. Y argv es un apuntador a un array de chars que contiene los parámetros pasados en el mismo orden en que fueron escritos. Lo que puedes hacer es que en la funcion main cuando mandas llamar a correcto() e incorrecto le pases los argumentos que sinceramente no se como puedan ser ya que nunca he programado con la libreria QT (creo yo que es esa), pero seria algo como esto:
CODE
if (y == "yes") {
correcto(1);
}
else {
incorrecto(1);
}

Saludos


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
ornitorrinco's
post May 16 2007, 11:19 PM
Publicado: #3


Maestro Perfecto
Group Icon

Grupo: Moderadores
Mensajes: 2.029
Registrado: 1-May 05
Desde: un bilbaino no solo vive donde quiere, sino que nace donde le da la gana
Miembro nº: 120.978



si a main() le añado int argc y char *argv[]
y a las fnciones correcto e incorecto les añado argc, argv el programa se compila sin problemas tanto en windows como en linux, sin embargo, a la hora de ejecutarse en linux finciona bien, pero en windows no realiza nada por consola y directamente ejecuta la función incorrecto(lo ejecuto desde la consola en windows tambien)


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
niber
post May 17 2007, 08:55 PM
Publicado: #4


Newbie
*

Grupo: Members
Mensajes: 18
Registrado: 4-November 06
Miembro nº: 185.423



Hola!!
No nos has dicho si te deja teclear la respuesta, sino te deja teclear la respuesta, prueba a poner :
CODE
cin>>y;
cin.ignore();//Para limpiar el stream

De todas formas para leer cadenas el cin>> te puede dar algun problemillacomo por ej para leer mas de una palabra "Jose Antonio", solo te leeria hasta el primer espacio en blanco "Jose", para solucionar esto puedes usar cin.getline(nombre_varible,tamaño_cadena);

Espero que te sirva. Salu2.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
ornitorrinco's
post May 17 2007, 09:42 PM
Publicado: #5


Maestro Perfecto
Group Icon

Grupo: Moderadores
Mensajes: 2.029
Registrado: 1-May 05
Desde: un bilbaino no solo vive donde quiere, sino que nace donde le da la gana
Miembro nº: 120.978



no es que no me deje escribir, es que no da tiempo, lo que le tengo que poner es solo una palabra y lo que me extraña es que dependendo del sistema operativo cambie(en windows uso gcc 3.4 y en linux gcc 4, pero no deberia cambiar tanto no?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
niber
post May 19 2007, 08:07 PM
Publicado: #6


Newbie
*

Grupo: Members
Mensajes: 18
Registrado: 4-November 06
Miembro nº: 185.423



A mi alguna vez tb me ha pasado que no me da tiempo a escribir la respuesta (por culpa del buffer stream), y poniendo cin.ignore(); funciona es como si esperase que pulsaras el intro.
Yo de todas formas usaba windos con el Borland c++, asi que no se porque cambia de un sistema operativo a otro
Pruebalo y ya me contaras.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
ornitorrinco's
post May 20 2007, 02:35 PM
Publicado: #7


Maestro Perfecto
Group Icon

Grupo: Moderadores
Mensajes: 2.029
Registrado: 1-May 05
Desde: un bilbaino no solo vive donde quiere, sino que nace donde le da la gana
Miembro nº: 120.978



nada, tampoco, seguire intentandolo.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
Closed TopicTopic OptionsStart new topic

Collapse

> Topicos similares

Tus canciones preferidas pero en video ^^ GeeK 4.412 99 Oct 3 2008, 03:44 PM
By: titometal
¿Como cambio un DNS por medio del dos? pero el ... Xtina.89 0 0 Oct 2 2008, 12:54 PM
By: Xtina.89
Tengo conexion a internet, pero no me funciona. sebastiansu 205 6 Sep 30 2008, 07:35 AM
By: sebastiansu
cuales son los riesgo de desinstalar servicios ... erizo XD 83 1 Sep 30 2008, 01:15 AM
By: vitrox2007
Ni Firefox ni IE cargan paginas web, pero Ares ... hazzor 189 1 Sep 25 2008, 11:00 AM
By: jbex