[英]no instance of overloaded function "getline" matches the argument list -- argument types are: (std::ifstream,char)
[英]Error: No instance of overloaded function “std::getline” matches the argument list — argument types are: (std::istream, char [50])
全新的(截至十分钟前)堆栈溢出和(大约一周后)c++,但我正在努力尝试获得一个图书馆管理系统,我发现在线工作以查看课程是如何工作的。 我在这里找到了原始代码: https://www.icbse.com/projects/c-project-on-library-management-2g并试图弄清楚如何让它运行。 有些标题有点旧,所以我根据需要进行了更新和更改。 遇到 get() 的问题,看到这里有人说这是不好的做法/不安全,所以我将所有这些引用都更改为“ std::getline ”。 但是,我现在有一个问题,我无法解决为什么我的调试器在 std 下有曲线。 我得到'没有重载 function "std::getline" 与参数列表匹配的实例——参数类型是:(std::istream, char [50])'。 我不确定如何解决这个问题。 任何帮助,将不胜感激。
#include<iostream>
#include<fstream>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<process.h>
#include<string.h>
#include<iomanip>
#include<string>
using namespace std;
using std::cout;
using std::getline;
class book
{
char bno[6];
char bname[50];
char aname[20];
public:
void create_book()
{
cout<<"\nNEW BOOK ENTRY...\n";
cout<<"\nEnter The book no.";
cin>>bno;
cout<<"\n\nEnter The Name of The Book ";
std::getline(std::cin, bname);
cout<<"\n\nEnter The Author's Name ";
std::getline(std::cin,aname);
cout<<"\n\n\nBook Created..";
}
void show_book()
{
cout<<"\nBook no. : "<<bno;
cout<<"\nBook Name : ";
puts(bname);
cout<<"Author Name : ";
puts(aname);
}
void modify_book()
{
cout<<"\nBook no. : "<<bno;
cout<<"\nModify Book Name : ";
std::getline(std::cin,bname);
cout<<"\nModify Author's Name of Book : ";
std::getline(std::cin,aname);
}
char* retbno()
{
return bno;
}
void report()
{cout<<bno<<setw(30)<<bname<<setw(30)<<aname<<endl;}
};
std::getline(std::cin, bname);
-> std::cin.getline(bname, 50);
.
全局 function std::getline()
仅适用于std::basic_string
类型。 成员 function getline()
仅适用于char[]
。
或者您可以省去将来的麻烦并将char[]
更改为std::string
。 整体使用起来要容易得多。
请注意, 混合getline()
和>>
是有问题的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.