elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Error extraño C en: 1 Noviembre 2014, 11:52 am
Código:
#include <iostream>

using namespace std;

int main(){

cout<<"Hola";
}

Al compilar me sale este extraño error:

hola.c:1:2: warning: null character(s) ignored [enabled by default]
 #
  ^
hola.c:1:3: error: invalid preprocessing directive #i
 #
   ^
hola.c:1:4: warning: null character(s) ignored [enabled by default]
 #
    ^
hola.c:1:6: warning: null character(s) ignored [enabled by default]

Y esa última linea se repite un montón de veces, alguna idea?
2  Programación / Programación C/C++ / Re: Modulo distinguir letras de numeros en: 20 Febrero 2014, 10:43 am
Muchas gracias, no funciona exactamente como necesitabamos pero gracias a lo que has puesto hemos conseguido modificarlo para que funcione como nos exigian, muchas gracias.
3  Programación / Programación C/C++ / Re: Modulo distinguir letras de numeros en: 14 Febrero 2014, 22:54 pm
Hola, soy el compañero de practicas del creador del tema, lo que pasa que ahora estoy solo por eso me he creado esta cuenta.

Hemos estado probando todo lo que nos habéis sugerido (y alguna que otra cosa mas) y no conseguimos hacer que funcione, así que tras probar mil cosas me he dado cuenta que al ejecutar este programilla:
Código:
#include <iostream>

using namespace std;

int main(){

int numero;

cout<<"Numero: "<<endl;
cin>>numero;
cout<<"N: "<<numero<<endl;

return 0;
}

Si en lugar de introducir un número introduces una letra, siempre recibes el valor 0, así que lo he intentado poner en mi código a ver si funcionaba, pero sigue fallando:

Código:
void editSong(Collection &collection){
  
  int encontrado, eleccion, buscado;  
  
   for(unsigned int i=0;i<collection.songs.size();i++){
     printSong(collection.songs[i]);
   }
  
   cout<<"Select song:"<<endl;
   cin>>buscado;
   if (buscado!=0){
   encontrado=findIdSong(collection, buscado);
   if(encontrado==-1){
cout<<"Error: Unknown song "<<buscado<<endl;
    }
    else{
      do{
 cout<<"Edit (1-Title, 2-Artist, 3-Album, 4-Genre, 5-Url):"<<endl;
 cin>>eleccion;
 cin.get();
 switch(eleccion){
   case 1:
     cout<<"Title: ";
     getline(cin, collection.songs[buscado-1].title);
     break;
   case 2:
     cout<<"Artist: ";
     getline(cin, collection.songs[buscado-1].artist);
     break;
   case 3:
     cout<<"Album: ";
     getline(cin, collection.songs[buscado-1].album);
     break;
   case 4:
     cout<<"Genre: ";
     getline(cin, collection.songs[buscado-1].genre);
     break;
   case 5:
     cout<<"Url: ";
     getline(cin, collection.songs[buscado-1].url);
     break;
   default: cout<<"Error: Unknow option"<<endl;
   break;
 }
 }while(eleccion!=1 && eleccion!=2 && eleccion!=3 && eleccion!=4 && eleccion!=5);
}
   }
   else{ //si no es un numero mostrar este mensaje de error y vovler a mostrar el menu
     cout<<"No results"<<endl;
   }
}

Aquí os dejo mi código entero por si a algún alma caritativa quiere echarle un ojo.

Código:
#include <iostream>
#include <vector>
#include <fstream>

using namespace std;

typedef struct
{
  int id; // El identificador de una nueva cancion debe ser igual a idNextSong
  string title;
  string artist;
  string album;
  string genre;
  string url;
} Song;

typedef struct
{
  vector<Song> songs;
  int idNextSong;  // Cada vez que se anyada una cancion a la coleccion, incrementar idNextSong
} Collection;


// Función para inicializar los valores de la colección
Collection createCollection();

//rellenar datos cancion
Song demandSong();

//comprobar cancion
bool isSongInCollection(const Collection &collection, Song song);

//añadir cancion
bool addSong(Collection &collection);

//imprimir canciones
void printSong(Song song);

//buscar y mostrar canciones
bool showCollection(const Collection &collection);

//encontrar ir
int findIdSong(const Collection &collection, int id);

//editar la cancion
void editSong(Collection &collection);

//borrar la cancion
void deleteSong(Collection &collection);

//prueba
bool Comprobarnumero(int numero);

// Implementar resto de funciones

int main()
{
  Collection collection=createCollection();
  
  
  char opcion;
  
    do{
      cout<<"--------------------------------"<<endl;
      cout<<"----------- MiniTunes ----------"<<endl;
      cout<<"--------------------------------"<<endl;
      cout<<"1- Add song"<<endl;
      cout<<"2- Edit song"<<endl;
      cout<<"3- Delete song"<<endl;
      cout<<"4- Show collection"<<endl;
      cout<<"5- Manage playlist"<<endl;
      cout<<"6- Import iTunes JSON data"<<endl;
      cout<<"7- Export playlist to XSPF"<<endl;
      cout<<"8- Save data"<<endl;
      cout<<"9- Load data"<<endl;
      cout<<"0- Play playlist"<<endl;
      cout<<"q- Quit"<<endl;
      cout<<"Option: ";
      cin>>opcion;
      cin.get();
  
      if (opcion!='1' && opcion!='2' && opcion!='3' && opcion!='4' && opcion!='5' && opcion!='6' && opcion!='7' && opcion!='8' && opcion!='9' && opcion!='0' && opcion!='q'){
cout<<"Error: Unknown option"<<endl;
      }    
      switch (opcion){
case '1':
 addSong(collection);
 break;
case '2': editSong(collection);
 break;
case '3':
 deleteSong(collection);
 break;
case '4':
 showCollection(collection);
 break;
      }
  }while(opcion!='q');
 
  return 0;
}

Collection createCollection()
{
  Collection collection;
  collection.idNextSong=1;

  return collection;
}

Song demandSong(){
  
  Song song;
  
  cout<<"Title: ";
  getline(cin, song.title);  
  cout<<"Artist: ";
  getline(cin, song.artist);
  cout<<"Album: ";
  getline(cin, song.album);
  cout<<"Genre: ";
  getline(cin,song.genre);
  cout<<"Url: ";
  getline(cin, song.url);
  
  
  return song;
}

bool isSongInCollection(const Collection &collection, Song song){
  
  bool repetida=false;
  unsigned int i;
  
  for(i=0;i<collection.songs.size() && !repetida;i++){
    if(song.title==collection.songs[i].title && collection.songs[i].artist==song.artist){
      repetida=true;
    }
  }
  return repetida;  
    
}

bool addSong(Collection &collection){

  bool repetida;
  
   Song song=demandSong();
  

   repetida=isSongInCollection(collection, song);
   if (repetida==true){
     cout<<"The song "<<song.title<<" is already in the collection"<<endl;
   }
   else {
  song.id=collection.idNextSong;
  collection.songs.push_back(song);
     collection.idNextSong++;
   }
return repetida;
}

void printSong(Song song){  
    cout<<song.id<<" | "<<song.title<<" | "<<song.artist<<" | "<<song.album<<" | "<<song.genre<<endl;      
}

bool showCollection(const Collection &collection){
  
  string buscado;
  bool encontrado;
  int aux=0;
  
  cout<<"Search: "<<endl;
  getline(cin, buscado);
  

    for(unsigned int i=0;i<collection.songs.size();i++){
    
      encontrado=false;
    
      if (collection.songs[i].title.find(buscado)!=string::npos){
encontrado=true;
      }
      else if(collection.songs[i].artist.find(buscado)!=string::npos){
encontrado=true;
      }
      else if(collection.songs[i].album.find(buscado)!=string::npos){
encontrado=true;
      }
      else if(collection.songs[i].genre.find(buscado)!=string::npos){
encontrado=true;
      }
      if (encontrado==true){
printSong(collection.songs[i]);
aux++;
}
    }
 
  if(aux==0){
    cout<<"No results"<<endl;
  }

 return encontrado;
}

int findIdSong(const Collection &collection, int id){
  
  int encontrado=-1;

  
   for(unsigned int k=0;k<=collection.songs.size();k++){
  if(id==collection.songs[k].id){
      encontrado=k+1;
      }
   }
  
    return encontrado;
}

void editSong(Collection &collection){
  
  int encontrado, eleccion, buscado;  
  
   for(unsigned int i=0;i<collection.songs.size();i++){
     printSong(collection.songs[i]);
   }
  
   cout<<"Select song:"<<endl;
   cin>>buscado;
   if (buscado!=0){
   encontrado=findIdSong(collection, buscado);
   if(encontrado==-1){
cout<<"Error: Unknown song "<<buscado<<endl;
    }
    else{
      do{
 cout<<"Edit (1-Title, 2-Artist, 3-Album, 4-Genre, 5-Url):"<<endl;
 cin>>eleccion;
 cin.get();
 switch(eleccion){
   case 1:
     cout<<"Title: ";
     getline(cin, collection.songs[buscado-1].title);
     break;
   case 2:
     cout<<"Artist: ";
     getline(cin, collection.songs[buscado-1].artist);
     break;
   case 3:
     cout<<"Album: ";
     getline(cin, collection.songs[buscado-1].album);
     break;
   case 4:
     cout<<"Genre: ";
     getline(cin, collection.songs[buscado-1].genre);
     break;
   case 5:
     cout<<"Url: ";
     getline(cin, collection.songs[buscado-1].url);
     break;
   default: cout<<"Error: Unknow option"<<endl;
   break;
 }
 }while(eleccion!=1 && eleccion!=2 && eleccion!=3 && eleccion!=4 && eleccion!=5);
}
   }
   else{ //si no es un numero mostrar este mensaje de error y vovler a mostrar el menu
     cout<<"No results"<<endl;
   }
}


void deleteSong(Collection &collection){
  
  int buscado_del, encontrado3=0;
  char sino;
  
    for(unsigned int i=0;i<collection.songs.size();i++){
     printSong(collection.songs[i]);
   }
  
    cout<<"Select song: "<<endl;
    cin>>buscado_del;
    
  
    encontrado3=findIdSong(collection, buscado_del);
    if(encontrado3==-1){
      cout<<"Error: Unknown song "<<buscado_del<<endl;
    }
    else{
      cout<<"Delete "<<collection.songs[buscado_del-1].id<<" | "<<collection.songs[buscado_del-1].title<<" | ";
      cout<<collection.songs[buscado_del-1].artist<<" | "<<collection.songs[buscado_del-1].album<<" | "<<collection.songs[buscado_del-1].genre<<"? (Y/N)"<<endl;
      cin>>sino;
      cin.get();
      if(sino=='N'){
cout<<"Song not deleted"<<endl;
      }
      else{
collection.songs.erase(collection.songs.begin()+buscado_del-1);
      }
    }
}

PD: ¿Cómo hacéis para que el código os salga en colores en el foro?

Gracias.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines