troubleshooting Question

Problem with reading into a struct - getline

Avatar of aideenobrien2000
aideenobrien2000 asked on
C++Editors IDEs
5 Comments1 Solution1847 ViewsLast Modified:
I want to read information from a text file into an array of structs of type AddWithdrawal. I got this code from another question on this site, but it won't work for me (i don't think that it's anything to do with the code, but something to do with my compiler maybe?) I'm using Visual C++.Net

ifstream inp;
    string line;

    inp.open(FileName);
    for(int i=0;i<2;i++)
    {
        getline(inp,AddWithdrawal[i].Username); //ERRORS ARE WITH THIS LINE

        // use stringstream to read entire line
        getline(inp,line);
        stringstream ss(line);
        ss >> AddWithdrawal[i].BookID;

        cout << AddWithdrawal[i].Username << endl;
        cout << AddWithdrawal[i].BookID << endl;
    }

When I try and compile that code, I get these errors for the first getline statement:
h:\LibraryV1\BookMgr.cpp(114): error C2780: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem)' : expects 3 arguments - 2 provided
h:\LibraryV1\BookMgr.cpp(114): error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &)' : could not deduce template argument for 'std::basic_istream<_Elem,_Traits> &' from 'std::ifstream'
h:\LibraryV1\BookMgr.cpp(114): error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &)' : could not deduce template argument for 'std::basic_string<_Elem,_Traits,_Ax> &' from 'char [10]'

Then if I try and add a third argument (my delimiter)
getline(inp,AddWithdrawal[i].Username,'*');
 I get these errors with the same line:
h:\LibraryV1\BookMgr.cpp(114): error C2780: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &)' : expects 2 arguments - 3 provided
h:\LibraryV1\BookMgr.cpp(114): error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem)' : could not deduce template argument for 'std::basic_istream<_Elem,_Traits> &' from 'std::ifstream'
h:\LibraryV1\BookMgr.cpp(114): error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem)' : could not deduce template argument for 'std::basic_string<_Elem,_Traits,_Ax> &' from 'char [10]'

This is what I've included at the start of the class
#include <string>
#include <vector>
using namespace std;

#include "Structs.h" //headerfile I've created
#include "BookMgr.h" //headerfile I've created

#include <iostream>
#include <fstream>
#include <sstream> // for stringstream

Thanks
Join the community to see this answer!
Join our exclusive community to see this answer & millions of others.
Unlock 1 Answer and 5 Comments.
Join the Community
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 5 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros