Ich schreibe ein Datenbankprogramm mit vielen Funktionen (Lesen, Schreiben, Löschen, Suchen, Login ect.) Und meine Schreibfunktion funktioniert nicht mehr (Es funktionierte vor 3 Tagen) und ich habe keine Idee was sich geändert hat. Meine Schreibfunktion (void savescore) soll meine Eingabe (cin Benutzername und Passwort) schreiben und dann zur nächsten Zeile wechseln, damit ich beim nächsten Mal mehr Informationen eingeben kann, wenn ich mich dazu entscheide, in die Datei zu schreiben. Im Moment ist es nur schriftlich über das, was ich das letzte Mal setzen inC++ Schreiben einer Zeichenfolge in eine Zeile in einer Textdatei; Neue Zeile Problem n funktioniert nicht
test2.txt -. Benutzername, Kennwort
Dann gehe ich zu bearbeiten und geben Sie „User, Pass“ und das ist, was passiert,
test2 .txt - User, Pass
Ich will es in der nächsten Zeile eingeben und ich habe "\ n" Kann mir jemand Hilfe geben? Dank
Code:
#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <fstream>
#include <conio.h>
#include <string>
#include <math.h>
using namespace std;
// Variables
string username;
string password;
//alphabet order functions
// Functions
void SaveScore()
{
ofstream Database;
Database.open("test2.txt");
Database << username << " " << password << "\n";
Database.seekp(0,std::ios::end); //to ensure the put pointer is at the end
Database.close();
}
int main()
{
int db;
char ans;
string save;
string file;
ifstream fin;
ofstream fout;
string searchpar;
char repeat;
bool loop = true;
while (loop == true)
{
cout << "WELCOME TO MY DATABASE\n\n";
cout << "To view the database, press 1\nTo edit the database, press 2\nTo search the database, press 3\nTo log in, press 4\n";
cin >> db;
system("CLS");
if (db == 1)
{
cout << "Here is the database: \n\n";
string line;
ifstream myfile("test2.txt");
if (myfile.is_open())
{
while (getline(myfile, line))
{
cout << line << '\n';
}
}
//open while bracket
cout << "\n\nWould you like to return to the menu(y/n)?";
cin >> repeat;
if (repeat == 'y')
{
loop = true;
}
else if (repeat == 'n')
{
loop = false;
}
system("CLS");
}
else if (db == 2)
{
cout << "Please enter your username : ";
cin >> username;
cout << "\nPlease enter your password: ";
cin >> password;
SaveScore();
cout << "\n\nWould you like to return to the menu(y/n)?";
cin >> repeat;
if (repeat == 'y')
{
loop = true;
}
else if (repeat == 'n')
{
loop = false;
}
system("CLS");
}
}
}
'Database.close();' Entfernen Sie dies, es ist zu früh. – user0042
Auch nicht notwendig. 'ofstream' [wird unter Berücksichtigung von RAII implementiert] (https://en.wikipedia.org/wiki/Resource_acquisition_is_initialization) und wird für Sie bei der Vernichtung geschlossen. – user4581301
Wie erwarten Sie 'Database.seekp()' nach 'Database.close()'? Was glauben Sie, was Database.close() 'tut? –