C++ cout jede minute

Hallo,
ich arbeite derzeit an einem kleinen c++ Programm.
Nun meine Frage:
Jede Minute oder alle 5 Minuten soll im CMD Fenster Hallo ausgegeben werden.

Ne ausgabe is ja ned das Problem, aber diese jede Minute auszugeben schon, gibts ein SLEEP oder soetwas?

Danke für eure Hilfe.
mfg,
 
HI
wie du schon richtig erkannt hast gibt es ein Sleep befehl.
Dazu musst du die windows.h datein includen und den befehl Sleep(1000) benutzten, die 1000 steh für 1 sek.
 
Danke :). Werds nachher gleich testen.
mfg,

Editt://

Noch eine Frage zu cmd

ping google.at > ping.txt

Nun wird die ping.txt immer überschrieben, es gibt jedoch einen Befehl wo diese weitergeführt wird, weiß den zufällig wer?

Danke :).

Editt:// Ok ping google.at >> ping.txt (Sprich >>) ist es :). Trotzdem Danke.
 
Original von Argre
Noch eine Frage zu cmd

ping google.at > ping.txt

Nun wird die ping.txt immer überschrieben, es gibt jedoch einen Befehl wo diese weitergeführt wird, weiß den zufällig wer?

Code:
ping google.at >> ping.txt

> = write
>> = append
< = read
 
ich würde einfach die time.h einbinden
diese enthält die funktion time(0); welche die vergangenen sekunden seit dem 1.1.1990 odwer so ausgibt.
ist wesentlich kleiner als die windows.h, welche ja die ganze winapi mit einbindet.

MfG
LionC
 
Hallo,
danke für eure Hilfe :).

Habe noch eine mini Frage für euch sicher eh in 10 Sekunden beantwortet :). Bin eben in C++ noch sehr am Anfang. (leider).

Vieles im Code ist auch nur zur Übung.

Nun zur Frage, jedes Ping hat ja ne große Antwort:

Ping wird ausgef￾hrt f￾r google.at [66.249.93.104] mit 32 Bytes Daten:

Antwort von 66.249.93.104: Bytes=32 Zeit=33ms TTL=245

Ping-Statistik f￾r 66.249.93.104:

Pakete: Gesendet = 1, Empfangen = 1, Verloren = 0 (0% Verlust),

Ca. Zeitangaben in Millisek.:

Minimum = 33ms, Maximum = 33ms, Mittelwert = 33ms

Ich will jedoch nur: "Antwort von 66.249.93.104: Bytes=32 Zeit=33ms TTL=245" ausgeben.
Wie kann ich den so zerschneiden das nur dies überbleibt, in php gibts ja einige praktische befehle dafür.
Code:
#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <string>

using namespace std;

int main ()
{
	string ip;

    cout << "STARTET!" << endl;

	cin >> ip;

	system(("ping " + ip + " -n 1 >> ping_server.txt").c_str());

	Sleep(5000);

	cout << "ENDE!" << endl;

    return 0;

	system("PAUSE");

}
 
hmm glaub so müsste es gehen:

Code:
fstream in; //huppala hab ich wohl vergessen--> dazu könnte dir http://www.cplusplus.com/reference/iostream/fstream/ helfen ;)

//sonst einfach ma nach fstream googln

string ip="google.at"; //hier wird die url gespeichert

string ping="ping ";
ping+=ip;
ping+=" -n 1 > ping.txt"; // das ganze wird mit dem befehl "ping" zusammengeschrieben und
                          // das resultat in der datei ping.txt gespeichert

system(ping.c_str()); //den befehl ausführen

in.open("ping.txt"); //die datei ping.txt öffnen

char c;

while(in.get(c)){       //nun wird die datei ping.txt durchlaufen
   if(c=='A'){
      in.get(c);         //und nach dem wort "Antwort" suchen, die ersten 3 zeichen davon sind in
      if(c=='n'){        //einer pingabfrage mit nur einer antwort einmalig, also kann man ab da alles ausgeben
         in.get(c);
         if(c=='t'){
            cout<<"An";
            while(c!='\n'){ //alles ausgeben bis ein zeilenumbruch kommt
               cout<<c;
               in.get(c);
            }
            break;
         }
      }
   }
}
in.close(); //die datei wieder schliessen sodass wieder in sie geschrieben werden kann
cout<<endl;
Sleep(60000); //eine Minute warten

gibt aber bestimmt noch effektivere methoden bin selbst noch anfänger...

mfg deadbird

//edit
Code:
#include <iostream>
#include <windows.h> 
#include <fstream>
 
Original von LionC
ich würde einfach die time.h einbinden
diese enthält die funktion time(0); welche die vergangenen sekunden seit dem 1.1.1990 odwer so ausgibt.
ist wesentlich kleiner als die windows.h, welche ja die ganze winapi mit einbindet.

MfG
LionC

Das halte ich für einen weniger gute Idee. Wenn du die <time.h> nimmst, hast du sicherlich vor sowas zu schreiben:
Code:
time_t t = time(NULL);
while(time(NULL) - t > 5){}

Dabei machst du 5s lang nichts, hast aber dennoch dein system ausgelastet.
Sleep(5000) dagegen sorgt dafür, dass der scheduler dem betroffenem thread ca. 5000 ms lang keine Prozessorzeit gibt. du wartest also kostenlos.

Ferner hat der kleinere header nicht zwangsläufig nen kleineres executable zur folge. im header stehen ausschließlich deklarationen, die dem compiler mitteilen, wie er die entsprechenden methoden aufzurufen hat. Die implementierung winapi steckt in den systemdll's und liegt damit ausserhalb des executables.
 
Hallo,
danke für eure Antworten :), habe nun auch schon weiter geproggt.
Also es funktioniert nun auch alles perfekt :), das freut mich auch schon sehr, nur ein Problem gibt es eben noch, das zuschneiden.

Die Ausgabe ist euch ja bekannt.
Nun meine Idee, denke es ist so einfacher, ma macht eine Schleife die immer schaut wie das nächste wort lautet und alles bis Antwort: eben löscht und ab TTL auch.

Nun habe ich die Variable ausgabe, in dieser ist das Ping enthalten.

Nun ist nur die Frage wie ich zeichen löschen kann, welche in einer Variable enthalten sind + wie ich dieses Ergebnis dann in die Ping.txt schreiben kann.

in.open und in.close habe ich gesehen (im oberen Beispiel) ist dies zum Beschreiben. Mein Buch gibt irgendwie dazu genau 0 Auskunft :(.

Code:
#include "stdafx.h" //Nur in VS
#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <string>

using namespace std;

int _tmain () //nur in VS _tmain sonst main()
{
	string server, ausgabe;
	int i = 0, zeit, minuten, eingabe;

    cout << "Wilkommen im Pingmanager V1.0" << endl;
	cout << "--------------------" << endl;
	cout << "Einstellungen taetigen" << endl;
	cout << "--------------------" << endl;
	cout << "URL:" << endl;
	cin >> server;
	cout << "Ping Abstand in Minuten:" << endl;
	cin >> minuten;
	cout << "Die Daten werden in der Datei: ping_" << server << " gespeichert" << endl;

	zeit = 1000 * 60 * minuten;

		while(i < 500) {
			i++;
			cout << "--------------------" << endl;
			cout << "Ping: " << i <<endl;
			cout << "--------------------" << endl;

			system(("ping " + server + " -n 1 >> ping_" + server + ".txt").c_str());
			ausgabe = system(("ping " + server + " -n 1").c_str());
			cout << ausgabe << endl;
			cout << "--------------------" << endl;

			Sleep(zeit);
		}
	
	cout << "ENDE!" << endl;
    return 0;
}

Danke für eure Hilfe :).
lg,
 
hab meinen quellcode mal mit kommentaren versehen

hoffe du verstehst jetzt alles :)

mfg deadbird
 
Hallo,
danke für die Kommentare nun verstehe ichs :), werds am Abend gleich ausprobieren.
Danke für deine Hilfe.
lg,
 
Zurück
Oben