Ich versuche, über die Flstream-Klasse zu lernen, und ich habe einige Probleme. Ich habe ein paar Txt-Dateien erstellt, die eine mit einem Witz und die andere mit einer Pointe (joke.txt) und (punchline.txt), nur um Inhalte einzulesen und anzuzeigen. Ich frage den Benutzer nach dem Dateinamen und wenn er gefunden wird, sollte er es öffnen, die Flags löschen und dann den Inhalt lesen. Aber ich kann nicht mal testen, was es liest, weil ich gerade Fehler bezüglich einer gelöschten Funktion erhalte. t wissen, was das bedeutetversucht, eine gelöschte Funktion zu referenzieren
Fehler 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
der zweite Fehler ist genau das gleiche, aber für die zweite Funktion (displayLastLine())
und Fehler 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
und hier ist mein Code:
#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;
}
}
Was haben Sie getan, um Ihr Problem zu debuggen? Hast du versucht, ein minimales Arbeitsbeispiel zu schreiben? –
Sie rufen eine Funktion auf, die vom Standard nicht unterstützt wird. – Theolodis
mögliches Duplikat von [Fehler: Verwendung der gelöschten Funktion] (http://stackoverflow.com/questions/5966698/error-use-of-deleted-function) – Theolodis