函数声明语法错误
Declaration syntax error in function
请帮我解决这个问题我也是在学校输入代码的,即使它显示声明语法错误。 -.- 想不通! .当你刚开始学习编码时,它是如此令人沮丧。
无效问题错误:声明语法错误
无效显示错误:非法使用指针
如果发现我有任何愚蠢行为,我深表歉意。
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
class book
{
char bookname[20];
char isbn[20];
char author[20];
char category[20];
float price;
int noc;
public:
void accept()
{
cout<<"Enter book name :- \n";
gets(bookname);
cout<<"Enter isbn no of the book:- \n";
gets(isbn);
cout<<"Enter authour name:- \n";
gets(author);
cout<<"Enter category of book:- \n";
gets(category);
cout<<"Enter price of the book :- \n";
cin>>price;
cout<<"Enter no of copies of book available in the library :- \n";
cin>>noc;
}
void display()
{
puts(bookname)<<endl;
puts(isbn)<<endl;
puts(author)<<endl;
puts(category)<<endl;
cout<<price<<endl;
cout<<noc<<endl;
}
}b[5];
int main()
{
for(int i=0;i<5;++i)
{
b[i].accept();
}
void issue()
{
int flag=0;
char booksearch[20];
cout<<"Enter name of book member wants to issue :- \n"
gets(booksearch);
for(i=0;i<5;++i)
{
flag=strcmp(booksearch,b[i].bookname)
}
}
if(flag==1)
{
b[i].display();
b[i].issue();
}
getch();
return 0;
}
- 在
flag=strcmp (searchbook, b [I]. bookname)
行后添加一个分号。
- 声明
flag
、searchbook
、b
(如果尚未声明)。
- 在你的函数之前做
#include <string.h>
您的代码有很多错误:
strcmp
调用后缺少分号:
strcmp
returns 匹配时为 0,而不是 1,并且您可能会在循环的下一次迭代中覆盖标志,
- 你对
issue
的定义在main
, 的中间
- 您正在混合使用 C 风格的获取和 C++ 风格的运算符 >>,
- 你正在混合 - 很糟糕 - C 风格的 puts 和运算符 <<
这是您的代码的非工作版本:
http://ideone.com/sGdXcm
这是一个固定的工作版本:
#include <iostream>
#include <string>
#include <array>
#include <limits>
using namespace std;
class book
{
std::string bookname;
std::string isbn;
std::string author;
std::string category;
float price;
int noc;
public:
const std::string& getBookname() const { return bookname; }
const std::string& getISBN() const { return isbn; }
const std::string& getAuthor() const { return author; }
const std::string& getCategory() const { return category; }
float getPrice() const { return price; }
float getNoC() const { return noc; }
void accept()
{
cout<<"Enter book name :- \n";
std::getline(std::cin, bookname);
cout<<"Enter isbn no of the book:- \n";
std::getline(std::cin, isbn);
cout<<"Enter authour name:- \n";
std::getline(std::cin, author);
cout<<"Enter category of book:- \n";
std::getline(std::cin, category);
cout<<"Enter price of the book :- \n";
std::cin>>price;
cout<<"Enter no of copies of book available in the library :- \n";
std::cin>>noc;
std::cin.ignore(std::numeric_limits<streamsize>::max(), '\n');
}
void display()
{
std::cout<<bookname<<std::endl;
std::cout<<isbn<<std::endl;
std::cout<<author<<std::endl;
std::cout<<category<<std::endl;
std::cout<<price<<std::endl;
std::cout<<noc<<std::endl;
}
void issue()
{
}
};
int main()
{
std::array<book, 5> b;
for(int i=0;i<b.size();++i)
{
b[i].accept();
}
std::string booksearch;
std::cout<<"Enter name of book member wants to issue :- \n";
std::getline(cin, booksearch);
std::cout<<"Searching for: " << booksearch << "\n";
for(int i=0;i<b.size();++i)
{
if (b[i].getBookname() == booksearch)
{
b[i].display();
b[i].issue();
break;
}
}
std::string dummy;
std::cout << "Hit return:";
std::getline(std::cin, dummy);
return 0;
}
注意:我没有在此代码中添加任何错误检查,如果用户在输入书籍时输入错误,事情就会出错。
请帮我解决这个问题我也是在学校输入代码的,即使它显示声明语法错误。 -.- 想不通! .当你刚开始学习编码时,它是如此令人沮丧。
无效问题错误:声明语法错误 无效显示错误:非法使用指针
如果发现我有任何愚蠢行为,我深表歉意。
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
class book
{
char bookname[20];
char isbn[20];
char author[20];
char category[20];
float price;
int noc;
public:
void accept()
{
cout<<"Enter book name :- \n";
gets(bookname);
cout<<"Enter isbn no of the book:- \n";
gets(isbn);
cout<<"Enter authour name:- \n";
gets(author);
cout<<"Enter category of book:- \n";
gets(category);
cout<<"Enter price of the book :- \n";
cin>>price;
cout<<"Enter no of copies of book available in the library :- \n";
cin>>noc;
}
void display()
{
puts(bookname)<<endl;
puts(isbn)<<endl;
puts(author)<<endl;
puts(category)<<endl;
cout<<price<<endl;
cout<<noc<<endl;
}
}b[5];
int main()
{
for(int i=0;i<5;++i)
{
b[i].accept();
}
void issue()
{
int flag=0;
char booksearch[20];
cout<<"Enter name of book member wants to issue :- \n"
gets(booksearch);
for(i=0;i<5;++i)
{
flag=strcmp(booksearch,b[i].bookname)
}
}
if(flag==1)
{
b[i].display();
b[i].issue();
}
getch();
return 0;
}
- 在
flag=strcmp (searchbook, b [I]. bookname)
行后添加一个分号。 - 声明
flag
、searchbook
、b
(如果尚未声明)。 - 在你的函数之前做
#include <string.h>
您的代码有很多错误:
strcmp
调用后缺少分号:strcmp
returns 匹配时为 0,而不是 1,并且您可能会在循环的下一次迭代中覆盖标志,- 你对
issue
的定义在main
, 的中间
- 您正在混合使用 C 风格的获取和 C++ 风格的运算符 >>,
- 你正在混合 - 很糟糕 - C 风格的 puts 和运算符 <<
这是您的代码的非工作版本: http://ideone.com/sGdXcm
这是一个固定的工作版本:
#include <iostream>
#include <string>
#include <array>
#include <limits>
using namespace std;
class book
{
std::string bookname;
std::string isbn;
std::string author;
std::string category;
float price;
int noc;
public:
const std::string& getBookname() const { return bookname; }
const std::string& getISBN() const { return isbn; }
const std::string& getAuthor() const { return author; }
const std::string& getCategory() const { return category; }
float getPrice() const { return price; }
float getNoC() const { return noc; }
void accept()
{
cout<<"Enter book name :- \n";
std::getline(std::cin, bookname);
cout<<"Enter isbn no of the book:- \n";
std::getline(std::cin, isbn);
cout<<"Enter authour name:- \n";
std::getline(std::cin, author);
cout<<"Enter category of book:- \n";
std::getline(std::cin, category);
cout<<"Enter price of the book :- \n";
std::cin>>price;
cout<<"Enter no of copies of book available in the library :- \n";
std::cin>>noc;
std::cin.ignore(std::numeric_limits<streamsize>::max(), '\n');
}
void display()
{
std::cout<<bookname<<std::endl;
std::cout<<isbn<<std::endl;
std::cout<<author<<std::endl;
std::cout<<category<<std::endl;
std::cout<<price<<std::endl;
std::cout<<noc<<std::endl;
}
void issue()
{
}
};
int main()
{
std::array<book, 5> b;
for(int i=0;i<b.size();++i)
{
b[i].accept();
}
std::string booksearch;
std::cout<<"Enter name of book member wants to issue :- \n";
std::getline(cin, booksearch);
std::cout<<"Searching for: " << booksearch << "\n";
for(int i=0;i<b.size();++i)
{
if (b[i].getBookname() == booksearch)
{
b[i].display();
b[i].issue();
break;
}
}
std::string dummy;
std::cout << "Hit return:";
std::getline(std::cin, dummy);
return 0;
}
注意:我没有在此代码中添加任何错误检查,如果用户在输入书籍时输入错误,事情就会出错。