繁体   English   中英

错误:没有重载 function “std::getline”实例与参数列表匹配 — 参数类型为:(std::istream, char [50])

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM