Infile incomplete type error

24,974

File streams are defined in the header <fstream> and you are not including it.

You should add:

#include <fstream>
Share:
24,974
kd7vdb
Author by

kd7vdb

Updated on July 05, 2022

Comments

  • kd7vdb
    kd7vdb almost 2 years

    I am building a program that takes an input file in this format:

    title author
    
    title author
    
    etc
    
    and outputs to screen 
    
    title (author)
    
    title (author)
    
    etc
    

    The Problem I am currently getting is a error:

    "ifstream infile has incomplete type and cannot be defined"

    Following is the program:

    #include <iostream>              
    #include <string>
    #include <ifstream>
    using namespace std; 
    
    string bookTitle [14];
    string bookAuthor [14];
    int loadData (string pathname);         
    void showall (int counter);
    
    int main ()
    
    {
    int counter;  
    string pathname;
    
    cout<<"Input the name of the file to be accessed: ";
    cin>>pathname;
    loadData (pathname);
    showall (counter);
    }
    
    
    int loadData (string pathname) // Loads data from infile into arrays
    {
        ifstream infile; 
        int counter = 0;
        infile.open(pathname); //Opens file from user input in main
        if( infile.fail() )
         {
             cout << "File failed to open";
             return 0;
         }   
    
         while (!infile.eof())
         {
               infile >> bookTitle [14];  //takes input and puts into parallel arrays
               infile >> bookAuthor [14];
               counter++;
         }
    
         infile.close;
    }
    
    void showall (int counter)        // shows input in title(author) format
    {
         cout<<bookTitle<<"("<<bookAuthor<<")";
    }
    
  • kd7vdb
    kd7vdb about 12 years
    The new error I get is: no matching function for call to `std::basic_ifstream<char, std::char_traits<char> >::open(std::string&)'