Deklarieren, definieren...



  • Halli Hallo!

    ich möchte meinen Code einen "Namen" geben, der dann unter den Namen ausgegeben wird.. Also gemeint ist:

    int main(void){
    
    time_t t = time(NULL); 
    struct tm tm = *localtime(&t); 
    
    printf("%d %d %d %d:%d:%d %d\n", tm.tm_wday, tm.tm_mon +1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_year + 1900);
    

    ich möchte nicht, dass dieser Code, der das Datum ausgibt meine main-Funktion ist. (Ich weiß nicht, ob das alles hier so richtig ist, darum geht es mir auch nicht).
    ich will den Teil ab time_t t = time (NULL); bis zum Ende den Namen date geben.
    müsste ich dann schreiben int date = date ??
    Ich weiß nicht ob ich meine Frage verständlich formulieren konnte, sowas fällt mir immer sehr schwer.
    Ich sag mal so, meine Datei wird mehrere Codes haben. Das ist nur ein Teil, welches das Datum ausgibt. Ein anderer Teil wird zb. den Namen ausgeben oder das Alter etc. Aber es soll nur etwas ausgeben werden, wenn man danach fragt.
    Das heißt, das Datum wird erst ausgeben, wenn ich dann im Terminal auch date schreibe oder name, alter etc.
    Wie deklariere ich das dann am besten in die main Funktion?
    Ich hoffe das ist verständlich und wenn nicht dann fragt bitte nach!!! Ich glaube ich formuliere es schwieriger als es ist. 😕 😕 😕



  • Du willst das also in eine Funktion auslagern.

    Ja das geht.

    Das mit dem Ausgeben nach einer Eingabe ist wieder etwas anderes.

    /* Deklaration (ist nicht nötig, wenn die Definition vor dem ersten Aufruf kommt) */
    void date(void);
    
    /* Definition */
    void date(void){
    
      time_t t = time(NULL);
      struct tm tm = *localtime(&t);
    
      printf("%d %d %d %d:%d:%d %d\n", tm.tm_wday, tm.tm_mon +1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_year + 1900);	
    
    }
    
    int main(void){
    
      // Hier wäre dann die Eingabe und der Test, ob die Eingabe auch "date" ist.
    
      date(); /erster Aufruf */
    }
    

    printf ist für Zeitangaben etwas blöd, da du auf führende Nullen achten musst.
    Es gibt extra die Funktion strftime.

    ^Meinst du, dass es sinnvoll ist eine Shell zu Programmieren, wenn du noch nicht einmal die Grundlagen kennst?^


Anmelden zum Antworten