Ich suchte nach Hilfe zu einem Problem. Ich muss bestimmte "Passwörter" aus einer .txt-Datei wie "abE13 #" lesen und einige einfache Fehlerprüfungen durchführen, um sicherzustellen, dass sie bestimmte Anforderungen erfüllen. Aber im Moment druckt es die Passwörter aus (was gemacht werden soll), aber es ignoriert die Überprüfung und bleibt in einer Schleife stecken, in der neue Zeilen ausgedruckt werden. Ich bin mir sicher, dass es etwas mit while(ch!='\n')
zu tun hat, aber ich bin mir nicht ganz sicher, was dort an Ort und Stelle zur Überprüfung benötigt wird.Probleme mit dem Lesen von einer TXT-Datei C++
ch = inFile.get();
while(!inFile.eof())
{
while(ch != '\n')
{
cout << ch;
if(isalpha(ch))
{
charReq++;
if(isupper(ch))
uppercaseReq++;
else
lowercaseReq++;
}
else if(isdigit(ch))
{
charReq++;
digitReq++;
}
else if(isSpecial(ch))
{
charReq++;
specialCharReq++;
}
if(uppercaseReq < 1)
cout << "\n missing uppercase" << endl;
ch = inFile.get();
}
}
es angenommen hat, Art, dieses Format zu folgen,
Read a character from the password.txt file
while(there are characters in the file)
{
while(the character from the file is not a newline character)
{
Display the character from the file
Code a cascading decision statement to test for the various required characters
Increment a count of the number of characters in the password
Read another character from the password.txt file
}
Determine if the password was valid or not. If the password was invalid,
display the things that were wrong. If the password was valid, display that it
was valid.
Read another character from the file (this will get the character after the
newline character -- ie. the start of a new password or the end of file)
}
Display the total number of passwords, the number of valid passwords, and the
number of invalid passwords
Willkommen bei Stack Overflow! Es klingt, als müssten Sie lernen, wie Sie einen Debugger verwenden, um durch Ihren Code zu gehen. Mit einem guten Debugger können Sie Ihr Programm Zeile für Zeile ausführen und sehen, wo es von dem, was Sie erwarten, abweicht. Dies ist ein essentielles Werkzeug, wenn Sie programmieren wollen. Weiterführende Literatur: [Wie kleine Programme zu debuggen] (http://ericlippert.com/2014/03/05/how-to-debug-small-programs/). –
Sie haben _'while (inFile) '_. Ich denke [Warum wird Iostream :: eof in einem Loop-Zustand als falsch angesehen?] (Http://stackoverflow.com/questions/5605125/why-isostreameof-inside-a-loop-condition-con- sidered-wrong) ist schwer verbunden. –
'cout << ch;' gibt alle Zeichen aus, während sie gelesen werden. Aus diesem Grund werden die Passwörter gedruckt –