Sto cercando di conoscere la classe fstream e sto avendo qualche problema. Ho creato un paio di file txt, uno con uno scherzo e l'altro con una battuta finale (joke.txt) e (punchline.txt) solo per il gusto di leggere e visualizzare il contenuto. Chiedo all'utente il nome del file e, se trovato, dovrebbe aprirlo, cancellare i flag e leggere il contenuto. Ma non riesco nemmeno a testare ciò che legge perché attualmente sto ricevendo errori riguardo a una funzione cancellata, ma non lo faccio t sapere cosa significatentativo di fare riferimento a una funzione cancellata
errore 1:
"IntelliSense: function "std::basic_ifstream<_Elem, _Traits>::basic_ifstream(const std::basic_ifstream<_Elem, _Traits>::_Myt &) [with _Elem=char, _Traits=std::char_traits<char>]" (declared at line 818 of "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\fstream") cannot be referenced -- it is a deleted function
il secondo errore è la stessa esatta, ma per la seconda funzione (displayLastLine())
ed errore 3:
Error 1 error C2280: 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const std::basic_ifstream<char,std::char_traits<char>> &)' : attempting to reference a deleted function
ed ecco il mio codice:
#include "stdafx.h"
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
void displayAllLines(ifstream joke);
void displayLastLine(ifstream punchline);
int main()
{
string fileName1, fileName2;
ifstream jokeFile, punchlineFile;
// Desribe the assigned project to the User
cout << "This program will print a joke and its punch line.\n\n";
cout << "Enter the name of the joke file (ex. joke.txt): ";
cin >> fileName1;
jokeFile.open(fileName1.data());
if (!jokeFile)
{
cout << " The file " << fileName1 << " could not be opened." << endl;
}
else
{
cout << "Enter name of punch line file (ex. punchline.txt): ";
cin >> fileName2;
punchlineFile.open(fileName2.data());
if (!punchlineFile)
{
cout << " The file " << fileName2 << " could not be opened." << endl;
jokeFile.close();
}
else
{
cout << endl << endl;
displayAllLines(jokeFile);
displayLastLine(punchlineFile);
cout << endl;
jokeFile.close();
punchlineFile.close();
}
}
// This prevents the Console Window from closing during debug mode
cin.ignore(cin.rdbuf()->in_avail());
cout << "\nPress only the 'Enter' key to exit program: ";
cin.get();
return 0;
}
void displayAllLines(ifstream joke)
{
joke.clear();
joke.seekg(0L, ios::beg);
string jokeString;
getline(joke, jokeString);
while (!joke.fail())
{
cout << jokeString << endl;
}
}
void displayLastLine(ifstream punchline)
{
punchline.clear();
punchline.seekg(0L, ios::end);
string punchString;
getline(punchline, punchString);
while (!punchline.fail())
{
cout << punchString << endl;
}
}
cosa hai fatto per eseguire il debug del tuo problema? Hai provato a scrivere un esempio di lavoro minimo? –
Si chiama una funzione che non è supportata dallo standard. – Theolodis
possibile duplicato di [errore: uso della funzione cancellata] (http://stackoverflow.com/questions/5966698/error-use-of-deleted-function) – Theolodis