Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Sefean

#1
Programación C/C++ / Error extraño C
1 Noviembre 2014, 11:52 AM
#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
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
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:
#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:

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.

#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.