ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
223
223
EMPFEHLEN
-
Guten Morgen

ich habe ein Problem und zwar folgendes.
Ich soll den einen Timestamp (der sich in der 1. Spalte befindet) anzeigen lassen.
Ich schaff es aber nur den Log komplett anzeigen zu lassen, also alle Spalten.
Die Splaten sind mit leerzeichen getrennt.
Hat jemand eine idee?
Danke im vorraus.
Bis jetzt sieht mein Code so aus:
Code cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
#include <iostream> #include <fstream> #include <string> #include <cstdio> using namespace std; int main() { //Öffnet die Datei datei.log ifstream file; file.open ("datei.log"); //Schleife while (file) cout << (char) file.get(); //Datei wird geschlossen file.close(); //Fehler ausgabe wenn die Datei nicht geöffnet/gefunden werden kann if (!file.eof()) { cerr << "Fehler beim ausgeben der Datei";} //Wenn die Datei geöffnet/gefunden wurde cout <<endl <<endl; cout <<"\t Zum schliessen druecken Sie Enter" <<endl <<endl; getchar(); return 0; }
Geändert von Paper (30.09.11 um 10:31 Uhr)
-
Hallo,
einfach das Leerzeichen suchen und nur den Teilstring bis dahin ausgeben:
GrußCode cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14
ifstream file("datei.log"); if( file.is_open() ) { string str; while( getline(file, str) ) { size_t nPos = str.find_first_of(' '); cout << (nPos != string::npos ? str.substr(0, nPos) : str ) << endl; } file.close(); }
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
Hallo,
danke für die schnelle antwort
wenn ich mal so ganz doof fragen darf was heißen diese Zeilen?
Code cpp:1 2 3 4
{ size_t nPos = str.find_first_of(' '); cout << (nPos != string::npos ? str.substr(0, nPos) : str ) << endl; }
-
Zur Erklärung:
size_t nPos = str.find_first_of(' ');
Findet das erste Vorkommen eines Leerzeichens im string und gibt die Position zurück
cout << (nPos != string::npos ? str.substr(0, nPos) : str ) << endl;
Du kennst den Bedingsoperator ( ? ) in C? Es wird damit getestet, ob ein Leerzeichen gefunden wurde. Wenn ja, wird der Teilstring bis zum Leerzeichen ausgegen, ansonsten der gesamte String (es gibt dann nur eine Spalte).
Gruß
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
30.09.11 12:37 #5
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Um zu prüfen ob die Datei geöffnet werden konnte, solltest du die is_open Methode verwenden.
Anstatt die ganze Zeile in einen String einzulesen und darin zu Suchen, ist es auch möglich das erste Wort mit dem >> operator zu lesen und den Rest der Zeile mit ignore zu ignorieren:
GrußCode cpp:1 2 3 4 5 6
if (file.is_open()) { std::string s; while (file >> s && file.ignore(std::numeric_limits<std::streamsize>::max(), '\n')) { std::cout << s << std::endl; } }
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Hallo,
danke für eure schnelle und gute Hilfe leute
das hat super Funktioniert.
Ähnliche Themen
-
MYSQL-Abfrage jeweils nur des erste vorkommen eines Wertes einer Spalte
Von MC-René im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 11.02.11, 12:41 -
Doppelte Daten in Spalte, nur die Erste abrufen
Von java777 im Forum JavaAntworten: 2Letzter Beitrag: 23.04.10, 10:06 -
mssql_fetch_array() Nur erste Spalte von Tabelle wird abgearbeitet
Von Briefkasten im Forum PHPAntworten: 6Letzter Beitrag: 11.02.07, 22:25 -
in Excel Spalte auswerten...
Von stephanfeltel im Forum Office-AnwendungenAntworten: 2Letzter Beitrag: 21.02.05, 15:32 -
Mysql - doppelte Einträge, jedoch nach erste spalte ausgeben
Von mrbong im Forum PHPAntworten: 1Letzter Beitrag: 15.02.05, 15:01





Zitieren
Login






