Oprava programu – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Oprava programu – C / C++ – Fórum – Programujte.comOprava programu – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Rusko0
Duch
20. 2. 2013   #1
-
0
-

Nazdar bratia,spravil som takýto program a potreboval by som pomôcť vyladiť,zajtra to mám odovzdať,sú to len menšie chybičky....Jedna chyba je že: mam v subore mena a prinich známky,pokial mám na spodu prazdny riadok  a dam vypisať,zdvoji mi to na ploche posledné meno....ked tam riadok nemám funguje to správne,ved to aj chcem,len problem je vtom že ak chcem v tom programe priamo pridať nove meno,nedá mi ho na nový riadok ale ku predchadzajucemu....preto by som potreboval poradiť program na spočitanie riadkov a vymazanie posledneho riadku :D a druha vec,nie vždy mi funguje ako má funkcia "ches pokracovat stlač a alebo n".....ďakujem za rady 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define otvor1 FILE *fw; fw = fopen("znamky.txt", "r");
#define otvor2 FILE *fw; fw = fopen("znamky.txt", "a");
#define otvor3 FILE *fp; fp = fopen("znamky2.txt", "w");

void vypis ()
{
    otvor1;
    
     if(fw == NULL)
     printf("Subor sa nenasiel.\n");
     else
     {
         int q;
         char all[10],all1[10];
        
        while(feof(fw) == 0)
         {
         fscanf(fw,"%s", all);
         fscanf(fw,"%s", all1);
       
         printf("%s %s\n",all);
         }
     }
     
}
void hladaj()
{
     otvor1;
    
     if(fw == NULL)
     printf("Subor sa nenasiel.\n");
     else
     {
    
     int x = 0;
     char meno[20],menoFW[20], znamky[20];
    
     printf("Zadaj meno: ");
     scanf("%s", meno);
    
     while(feof(fw) == 0 && x == 0)
     {
                    fscanf(fw,"%s", menoFW);
                    fscanf(fw,"%s", znamky);
                   
                    if(strcmp(meno,menoFW) == 0)
                    x = 1;
                    }
                   
                    if(x == 1)
                    printf("%s %s\n", menoFW, znamky);
                    else
                    printf("Meno sa v zozname nenaslo.\n");
    
                    fclose(fw);
                    }
               
}


void pridaj()
{
     otvor2;
     if(fw == NULL)
     printf("Subor sa nenasiel.");
     else
     {
    
     char meno[20], znamky[20];
    
     printf("Zadaj meno: ");
     scanf("%s", meno);
     printf("Zadaj znamky: ");
     scanf("%s", znamky);
    
     fprintf(fw,"%s %s\n", meno, znamky);
    
     fclose(fw);
     }

}

void vymaz()
{
     otvor1;
    
     if(fw == NULL)
     printf("Subor sa nenasiel.");
     else
     {
    
     int x = 0;
     char meno[20],menoFW[20],znamky[20];
    
     printf("Zadaj meno: ");
     scanf("%s", meno);
    
     while(feof(fw) == 0 && x == 0)
     {
                    fscanf(fw,"%s", menoFW);
                    fscanf(fw,"%s", znamky);
                   
                    if(strcmp(meno,menoFW) == 0)
                    x = 1;
                    }
                   
                    if(x == 1)
                    {
                         otvor3;
                        
                         x = 0;
                        
                         fseek(fw, 0, SEEK_SET);
                        
                         int i = 0;
                        
                         while(feof(fw) == 0)
                         {
                                        fscanf(fw,"%s", menoFW);
                                        fscanf(fw,"%s", znamky);
                                        i++;                                       
                                        }
                                       
                         fseek(fw, 0, SEEK_SET);
                        
                         int j;
                        
                         for(j=0;j<i-1;j++)
                         {
                                        fscanf(fw,"%s", menoFW);
                                        fscanf(fw,"%s", znamky);
                                        if(strcmp(meno,menoFW) != 0)
                                        {
                                                               fprintf(fp,"%s ", menoFW);
                                                               fprintf(fp,"%s", znamky);
                                                               fprintf(fp,"\n");
                                                               }
                                         
                                       }
                                      
                         fclose(fp);
                         fclose(fw);
                        
                         fw = fopen("znamky.txt", "w");
                         fp = fopen("znamky2.txt", "r");
                        
                         j=0;
                        
                         for(j=0;j<i-2;j++)
                         {
                                        fscanf(fp,"%s", menoFW);
                                        fscanf(fp,"%s", znamky);
                                       
                                        fprintf(fw,"%s ", menoFW);
                                        fprintf(fw,"%s", znamky);
                                        fprintf(fw,"\n");     
                                       
                                        }
                         fclose(fp);
                         fclose(fw);
      
                        
                     }
                    else
                    printf("Meno sa v zozname nenaslo.\n");
                    }

    
}


void oprav ()
{
    otvor1;
   
     if(fw == NULL)
     printf("Subor sa nenasiel.");
     else
     {
        
     int x = 0;
     char meno[20],menoFW[20],znamky[20],znamkyNove[20];
    
     printf("Zadaj meno: ");
     scanf("%s", meno);
    
     while(feof(fw) == 0 && x == 0)
     {
                    fscanf(fw,"%s", menoFW);
                    fscanf(fw,"%s", znamky);
                   
                    if(strcmp(meno,menoFW) == 0)
                    x = 1;
                    }
                   
                    if(x == 1)
                    {
                         FILE *fp;
                         fp = fopen("znamky2.txt", "w");
                        
                         x = 0;
                        
                         fseek(fw, 0, SEEK_SET);
                        
                         printf("Zadaj nove znamky: ");
                         scanf("%s", znamkyNove);
                        
                         int i = 0;
                        
                         while(feof(fw) == 0)
                         {
                                        fscanf(fw,"%s", menoFW);
                                        fscanf(fw,"%s", znamky);
                                        i++;                                       
                                        }
                                       
                         fseek(fw, 0, SEEK_SET);
                        
                         int j;
                        
                         for(j=0;j<i-1;j++)
                         {
                                        fscanf(fw,"%s", menoFW);
                                        fscanf(fw,"%s", znamky);
                                        if(strcmp(meno,menoFW) == 0)
                                        {
                                                               fprintf(fp,"%s ", menoFW);
                                                               fprintf(fp,"%s", znamkyNove);
                                                               fprintf(fp,"\n");
                                                               }
                                        else
                                        {
                                                               fprintf(fp,"%s ", menoFW);
                                                               fprintf(fp,"%s", znamky);
                                                               fprintf(fp,"\n");
                                        }
                                         
                                       }
                                      
                         fclose(fp);
                         fclose(fw);
                        
                         fw = fopen("znamky.txt", "w");
                         fp = fopen("znamky2.txt", "r");
                        
                         j=0;
                        
                         for(j=0;j<i-1;j++)
                         {
                                        fscanf(fp,"%s", menoFW);
                                        fscanf(fp,"%s", znamky);
                                       
                                        fprintf(fw,"%s ", menoFW);
                                        fprintf(fw,"%s", znamky);
                                        fprintf(fw,"\n");     
                                       
                                        }
                         fclose(fp);
                         fclose(fw);
      
                        
                     }
                    else
                    printf("Meno sa v zozname nenaslo.\n");
                    }   
   
     
}

int main()
{
    char c,d;
   
    while(d != 'n')
    {
    printf("VYPIS - 1\n");       
    printf("HLADAJ - 2\n");
    printf("PRIDAJ - 3\n");
    printf("OPRAV - 4\n");
    printf("VYMAZ - 5\n");
    printf("KONIEC - 6\n");
    printf("-------------\n");
    printf("\n");
           
    printf("Zadaj prikaz: "); 
    c = getchar();
    getchar();
   
    switch (c) {
           case '1': vypis();
           break;
           case '2': hladaj();
           break;
           case '3': pridaj();
           break;
           case '4': oprav();
           break;
           case '5': vymaz();
           break;
           case '6': return 0;
           break;
          
           default : printf("Zadany prikaz neexistuje.\n");
           }
          
    
    printf("Chces pokracovat a/n?\n");
    getchar();
    d = getchar();
    getchar();
    if(d == 'n')
    {
    return 0; 
    }
      system("cls"); 
   
    }
          
   

  system("PAUSE");
  return 0;
}
Nahlásit jako SPAM
IP: 178.41.219.–
Reklama
Reklama
Rusko0
Duch
20. 2. 2013   #2
-
0
-

#1 Rusko
JE to sice trošku dlhé,len mi napíšte ako spočitam riadky v subore a vymažem posledný prosím...kto by mal čas tak nech mi pozrie aj tu druhú chybu....Ďakujem

Nahlásit jako SPAM
IP: 178.41.219.–
vitamin+8
Grafoman
20. 2. 2013   #3
-
0
-

#2 Rusko
Vloz sem ten kod cez tlacitko "Vloz zdrojovy kod"

<?

Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Rusko0
Duch
20. 2. 2013   #4
-
0
-

#3 vitamin
Hotovo,sory,nevedel som....

Nahlásit jako SPAM
IP: 178.41.219.–
robo
~ Anonymní uživatel
82 příspěvků
20. 2. 2013   #5
-
0
-

ja len tak v rýchlosti čo som si všimol
máš príkaz while(d != 'n'), ale k d nemáš ešte nič priradené, takže ti podmienka nemôže fungovať
tak buď to zmeň na do-while alebo načítaj d ešte predtým
A ešte na konci máš zbytočnú podmienku if. však už to máš ošetrené v tom while že skončí keď znak bude n

Nahlásit jako SPAM
IP: 147.175.179.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 96 hostů

Podobná vlákna

Oprava kódu. — založil DeathHumanCZ

Oprava úkolů — založil Polarski

Oprava HTML — založil Kaylyns

Oprava chyb — založil zdenek72

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý