itoa geht nicht...



  • Ich möchte ein kleines Programm schreiben, das den PC nach einer bestimmten Zeit herunterfährt, leider klappt die übergabe wegen ito() nicht...kann mir jemand sagen an was das liegt?

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main() {
        int iMin;
        long int iSec;
        char szUebergabe[50];
        strcpy(szUebergabe, "SHUTDOWN -S -F -T ");
        char szSec[20];
        puts("\tSHUTDOWN_TIMER");
        puts("In wieviel Minuten soll der PC heruntergefahren werden?:");
        scanf("%d", iMin);
        iSec = iMin * 60;
        itoa(iSec, szSec, 10);
        strcat(szUebergabe, szSec);
        puts(szUebergabe);
        //system(szUebergabe);
        system("PAUSE");
        return 0;
    }
    


  • #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main()
    {
    	int iMin = 0; // Variablen solltest du eigentlich immer schon mal mit irgendetwas initialisieren
    	long int iSec = 0;
    	char szUebergabe[50];
    	strcpy(szUebergabe, "SHUTDOWN -S -F -T ");
    	char szSec[20];
    	puts("\tSHUTDOWN_TIMER");
    	puts("In wieviel Minuten soll der PC heruntergefahren werden?:");
    	scanf("%d", &iMin); // Du hattest hier den &-operator vergessen
    	iSec = iMin * 60;
    	itoa(iSec, szSec, 10);
    	strcat(szUebergabe, szSec);
    	puts(szUebergabe);
    	//system(szUebergabe);
    	//system("PAUSE");
    	return 0;
    }
    


  • k vielen dank, wieder nur ne kleinigkeit 🙄, man man ich sollte mir das doch lieber noch paar mal durchlesen^^



  • oder eine vernünftigen compiler verwenden...



  • ---- schrieb:

    oder eine vernünftigen compiler verwenden...

    was sollte denn, deiner meinung nach, in einer uninitialisierten, lokalen variablen drin stehen?
    🙂



  • ich glaube eher dass er meint dass der compiler eine warnung ausgibt wenn du mit sogenannten "unreferenzierten" variablen rumzauberst...



  • Es gibt kein itoa in ANSI C 🙄



  • Skym0sh0 schrieb:

    ich glaube eher dass er meint dass der compiler eine warnung ausgibt wenn du mit sogenannten "unreferenzierten" variablen rumzauberst...

    falls du die stelle mit scanf meinst: nein. kann er auch gar nicht. die konvertierung eines int zu einem zeiger ist völlig legal und kommt auch noch sehr oft vor. ein c-compiler kann hier nicht unterscheiden, ob du wirklich das meinst, was du geschrieben hast oder ob du nicht doch &int meintest.

    die nicht initialisierung hingegen sollte eine warnung erzeugen.



  • hab jetzt ein anderes Problem, und zwar wenn ich ne Zahl eingebe kommt nicht das Fenster das Windows heruntergefahren wird und das Programm startet in der gleichen Konsole einfach neu...

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main()
    {
        int iMin = 0; 
        long int iSec = 0;
        char szUebergabe[50];
        char szSec[20];
    
        system("COLOR A");
        puts("\n\t################################");
        puts("\t#			       #");
        puts("\t#  SHUTDOWN_TIMER              #");
        puts("\t#			       #");
        puts("\t################################\n\n");
    
        puts("In wieviel Minuten soll der PC heruntergefahren werden?:");
    
        strcpy(szUebergabe, "SHUTDOWN -S -F -T ");
        scanf("%d", &iMin); 
        iSec = iMin * 60;
        itoa(iSec, szSec, 10);
        strcat(szUebergabe, szSec);
    
        //puts(szUebergabe);
        system(szUebergabe);
        system("PAUSE");
        return 0;
    }
    


  • fuer so eine alert msg gibt es bei shutdown glaub ich doch einen ProgrammSchalter



  • wenn ich den string szUebergabe bei "Ausführen" eingebe klappt alles, nur so irgendwie nicht...



  • *push*


Anmelden zum Antworten