die Funktion nimmt kein 1-Argumente-Fehler
Habe ich schon oft versucht diesen Fehler zu beheben aber ich bin mir nicht sicher, was zu tun ist. Sowohl die addBooks und displayBooks Funktionen bin ich immer eine "Funktion nimmt kein 1-Argumente" - Fehler, wenn der Vektor nur mit einem argument.
struct bookStruct
{
char title[40];
char author[40];
int pages;
int year;
};
enum menu { display=1, add, end} ;
void displayOptions();
void displayBooks();
void addBooks();
int main(){
vector<bookStruct> book(1);
string option = "display";
displayOptions();
cin >> option;
//std::strcpy(book[0].title, "a");
//std::strcpy(book[0].author, "a");
//book[0].pages = 0;
//book[0].year = 0;
while (option != "end"){
addBooks(book);
displayBooks(book);
}
return 0;
}
void displayOptions(){
cout << "1. Display list of books" << endl;
cout << "2. Add books" << endl;
cout << "3. Exit" << endl;
}
void displayBooks(vector<bookStruct> book){
for (int n = 0; n<book.size(); n++){
cout << book[n].title << " ; " << book[n].author << " ; "
<< book[n].pages << " ; " << book[n].year <<endl;
}
cout << endl;
}
void addBooks(vector<bookStruct> book){
int n = book.size()+1;
book.resize(book.size()+1);
cout << "Enter the book title: " << endl;
cin >> book[n].title;
cout << "Enter the author name: " << endl;
cin >> book[n].author;
cout << "Enter the number of pages: " << endl;
cin >> book[n].pages;
cout << "Enter the publication year: " << endl;
cin >> book[n].year;
}
- Ihre Funktion Prototypen nicht mit den Implementierungen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beide
addBooks
unddisplayBooks
nehmen keine Argumente:doch Sie ruft Sie mit Argumenten:
Der compiler sagt Ihnen, dies in seinen eigenen Worten.
Sieht es aus wie Sie benötigen,
obwohl es wahrscheinlicher ist, dass Sie nicht brauchen, um kopieren Sie die Vektoren in die Funktionen:
Hinweis Sie Definitionen der ein-parameter-Funktionen nach
main()
. Diemain()
- Funktion berücksichtigt nur die Angaben vor es.void displayBooks(vector<bookStruct> book){
wahrscheinlich nicht der richtige..übernehmen keine parameter, aber Sie bestanden
book
in Ihnen, kompilieren Sie nicht finden können, die beide Funktionen übernehmen. daher Fehler.sollte
aber als der bessere Ansatz, die Sie verwenden können:
So, dass Buch vector nicht kopiert, während das übergeben in die Methode DisplayBooks
const
ref zu einemvector
da ich vermutedisplayBooks
sollten nicht brauchen, um die Daten zu speichern.Ihre Funktion ist deklariert als
aber Sie rufen es mit
Compiler ist offenbar der Meinung es seltsam, dass Sie kein argument in der Erklärung, und dann versuchen, es zu nennen mit einem argument.
Es ist schwer für mich zu beraten, was Sie genau tun sollten, da es nicht klar aus dem code, den Sie geschrieben haben, was die "richtige" Sache ist.
main
- er wahrscheinlich will der Vektor als argument.