023
13.01.2013, 06:09 Uhr
Hans
Library Walker (Operator)
|
Hi,
ich hab mal ein kleines Progrsamm gebastelt dass das umsetzt, was ich oben im Beitrag #020 geschrieben habe zum Teil umsetzt, nämlich die Zeile durchsuchen.
C++: |
/* Datei: Zeilentest.cpp
Durchsucht eine eingegebene Zeile nach einer Zahl, wandelt diese nach double und gibt sie aus. */
#include <iostream> #include <cstdlib> #include <cctype>
using namespace std;
int main() { char zeile[80]; int i; double Z; Z=0.0; cout << "Bitte eine Zeile eingeben: "; cin >> zeile; cout << endl;
for (i=0; i<80; i++) { if (i<80) { if (!isdigit(zeile[i])) // ist das i-te Zeichen eine Ziffer? continue; // nein, dann weiter suchen else break; // ja, dann Schleife beenden } // if i } // for Z=atof(zeile+i); cout << "Enthaltene Zahl: " << Z << endl; return 0; } // main
|
Nur spinnt atof da ein wenig, wenn es auf den Dezimalpunkt trift. Dann hat er bei mir immer 3 ausgegeben. - Keine Ahnung, warum. Jedenfalls führte mich das dazu, mal nach meiner universellen Zahleneingabefunktion zu suchen, die ich hier vor Jahren mal gepostet habe. Man findet sie hier, Beitrag #015. Das ist allerdings C, oder wie ich in der Erklärung geschrieben habe "Hardcore-C", sollte aber auch unter C++ funktionieren, wenn man die #includes anpasst. Eine ähnliche, aber erweiterte Variante (bzw. die Ursprüngliche) findet man auch hier, Beitrag #006.
Wenn Du das allerdings nicht verstehst oder der Versuch, es zu verstehen zuviel Aufwand bedeutet, ist es auch kein Drama. Dann lässt Du es halt. Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. Dieser Post wurde am 13.01.2013 um 06:17 Uhr von Hans editiert. |