String splitten und zweiten Teil konvertieren



  • früher oder später kommst du auch an strukturen nicht vorbei.

    #define NAMELEN_MAX 63
    
    	struct scorelist_dataset
    	{
    		char name[NAMELEN_MAX+1];
    		unsigned score;
    	};
    
    	struct scorelist_dataset dataset[3] = {0};
    	int i = 0;
    
    	fscanf ( fp, "%s %u", dataset[i].name, &dataset[i].score )
    	printf( "%s %u\n", dataset[i].name, dataset[i].score );
    


  • Habe es jetzt so gelöst und es funktioniert.

    Filehighscore = fopen("highscore.txt","r+");
                        zaelen = 0;
                        platz = 0;
    
                        while(2 == fscanf(Filehighscore, "%s %d", user, &score))
                        {
                            if(zaelen == 0)
                            {
                                strcpy(uZeile1, user);
                                hZeile1 = score;
                                if(hZeile1 <= highscore && platz == 0)
                                {
                                    printf("Du hast den ersten Platz gemacht. Gebe bitte deinen Namen ein: ");
                                    scanf("%s", name);
                                    printf("Du kannst die Highscore Liste im Menue unter dem dritten Punkt aufrufen\n");
                                    strcpy(uZeile1, name);
                                    hZeile1 = highscore;
                                    platz = 1;
                                }
                            }
    
                            if(zaelen == 1)
                            {
                                strcpy(uZeile2, user);
                                hZeile2 = score;
                                if(hZeile2 <= highscore && platz == 0)
                                {
                                    printf("Du hast den zweiten Platz gemacht. Gebe bitte deinen Namen ein: ");
                                    scanf("%s", name);
                                    printf("Du kannst die Highscore Liste im Menue unter dem dritten Punkt aufrufen\n");
                                    strcpy(uZeile2, name);
                                    hZeile2 = highscore;
                                    platz = 1;
                                }
    
                            }
    
                            if(zaelen == 2)
                            {
                                strcpy(uZeile3, user);
                                hZeile3 = score;
                                if(hZeile3 <= highscore && platz == 0)
                                {
                                    printf("Du hast den dritten Platz gemacht. Gebe bitte deinen Namen ein: ");
                                    scanf("%s", name);
                                    printf("Du kannst die Highscore Liste im Menue unter dem dritten Punkt aufrufen\n");
                                    strcpy(uZeile3, name);
                                    hZeile3 = highscore;
                                    platz = 1;
                                }
                                if(platz = 0)
                                {
                                    printf("Du hast gar keinen Platz gemacht\n");
                                }
                            }
                            zaelen++;
                        }
                               fclose(Filehighscore);
                            neuFilehighscore = fopen("highscore.txt", "w+");
                            if(neuFilehighscore == NULL)
                            {
                                printf("Fehler beim anlegen der highscore.txt.\n");
                            }
                            fprintf(neuFilehighscore, "%s %d\n", uZeile1, hZeile1);
                            fprintf(neuFilehighscore, "%s %d\n", uZeile2, hZeile2);
                            fprintf(neuFilehighscore, "%s %d\n", uZeile3, hZeile3);
                            fclose(neuFilehighscore);
    
                    }
    


  • Ganz schlechte Praxis, kopierten Code zu verwenden.
    Aber du willst es trotz hier vielfach gegebener Hinweise nicht anders.

    if(platz = 0)
    

    ist auch noch ein Fehler und wahrscheinlich nicht der letzte in deinem Programm.



  • Ja ich habe die Dritte Seite nicht gesehen 🙂 Habe es jetzt mit deiner Lösung versucht und es funktioniert.
    Vielen Dank für den netten Support.


Anmelden zum Antworten