Pues veréis llevo varios días ya que no me aclaro con este programa, no se porque narices no me hace los gets bien.....,le véis algún fallo?????? :huh: :huh: :huh:
include<iostream.h>
using namespace std;
int main(void){
char cadena[40]={},equipo[20]={},equipo2[20]=...
int espacios=1,espaciosant=0;
char *ptr;
int numcadena,veces,contador=0;
char *equipoptr;
cin>>veces;
while(veces != contador){
gets(cadena);
equipoptr = equipo;
gets(equipo);
while(*equipoptr != 'F'){
espacios = 1;
gets(cadena);
equipoptr = equipo;
gets(equipo);
ptr = cadena;
while(*ptr != '\0') {
ptr = ptr +1;
if(*ptr == ' ' ) {
espacios++;
}
}
if (espacios > espaciosant) {
strcpy(equipo2,equipo);
espaciosant = espacios;
cout<<espaciosant<<endl;
}
}
cout<<"EL MEJOR: "<<equipo2<<" "<<espacios<<endl;
contador++;
}
Gracias a todos por adelantado. ;D
Pues hay más de uno...
include<iostream.h>
using namespace std;
1- La función include la analiza el preprocesador, por tanto hay que poner antes un "#". Además la librería no se llama "iostream.h" sino "iostream"; quedaría asi:
#include<iostream>
using namespace std;
2- En esta parte los puntos suspensivos del final te darán un error como una casa porque eso no es ningún tipo de instrucción:
int main(void){
char cadena[40]={},equipo[20]={},equipo2[20]=...
3- Para usar "gets" debes añadir la librería "stdio.h".
4- La función "strcpy()" tampoco te va a funcionar si no añades la librería "string.h".
5- Te falta un "}" (cerrar llave) al final del programa.
Y por último gets no se debe usar, está totalmente desaconsejado; ya que programas en c++ puedes usar "cin.getline()".
Saludos.
Un consejo, si no vas a programar orientado a objetos no uses C++ usa C. Como te decía eleon no está recomendado usar gets() ya que puede causar un buffer overflow (desbordamiento del buffer), usa fgets() y lee del stdin.