Do While problem
-
Hallo ich habe ein Problem mit meinem Code:
string text;
int i = 0;do
{cout << "mache deine eingabe\n";
getline(cin, text);}
while ((text.at(i) < 65 || text.at(i) > 90) && (text.at(i) < 95 || text.at(i) > 122) && (text.at(i) = 32));
Die while untersucht nur den ersten Eintrag im String. bei i++ nur bis den zweiten

wie schaffe ich, dass er sich alle Einträge anschaut?
Ich hab es mit for (int i = 0; i < text.size(); i++) in der Do versucht, aber auch dieser untersucht nicht alle Einträge
vielen dank
-
ftfy:
#include <cstddef> #include <cctype> #include <string> #include <iostream> int main() { std::string text; bool error; do { std::cout << "Mache deine Eingabe: "; std::getline( std::cin, text ); error = false; for( auto ch : text ) { if( !( std::isalpha( ch ) || std::isspace( ch ) ) ) { error = true; break; } } } while( error ); }Vicky15790 schrieb:
Ich hab es mit for (int i = 0; i < text.size(); i++) in der Do versucht, aber auch dieser untersucht nicht alle Einträge.
Zeig mal ...
-
#include <iostream>
using namespace std;
#include <string>int main()
{
string text;
int i = 0;do
{
for (int i = 0; i < text.size(); i++);
cout << "mache deine eingabe\n";
getline(cin, text);} while ((text.at(i) < 65 || text.at(i) > 90) && (text.at(i) < 95 || text.at(i) > 122) && (text.at(i) = 32));
isalpha(ch) und isspace(ch) sollen wir nicht nutzn und Umwandlungen selbst programmieren
-
wie kann ich auto ch : text auch anders schreiben, ohne vordefinierte Funktionen?
-
VIELEN DANK DEIN ANSATZ HAT Mir SEHR GEHOLFEN
hab es nun so
#include <iostream>
using namespace std;
#include <string>int main()
{
string text;
int i = 0;
bool error;do {
cout << "Mache deine Eingabe: ";
getline(cin, text);error = false;
for (i = 0; i < text.size(); i++)
{
while ((text.at(i) < 65 || text.at(i) > 90) && (text.at(i) < 95 || text.at(i) > 122) && (text.at(i) = 32))
{
error = true;
break;
}
}} while (error);
,,,,,,,
-
for( Type var : container )ist keine "vordefinierte Funktion" sondern eine seit C++11 vorhandene Variante derfor-Schleife.Das in dem letzten Codefetzen von dir in der
for-Schleife deklarierteihat mit demidas weiter oben deklariert ist, nichts zu tun. In der Bedingung derwhile-Schleife existiert dasiaus derforSchleife noch nichteinmal mehr. Diesesivon weiter oben ist von Anfang an0und das ändert sich auch nie.
-
Was soll die
while-Schleife in derfor-Schleife?
Die Bedingung kann auch ned stimmen. Du meinst'A'-'Z','a'-'z'und' '(Space)? Alleine der "Vergleich" gegen Space (32) bei dir ist kein Vergleich, sondern eine Zuweisung.
-
Der soll soll schauen ob der benutzer nur buchstaben einsetzt
und wenn nicht die frage wiederholen