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

Funkce gets – C / C++ – Fórum – Programujte.comFunkce gets – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Karel
~ Anonymní uživatel
121 příspěvků
14. 5. 2014   #1
-
0
-

Zdravím,

Netušíte někdo prosím proč mi hlásí kompilátor chybu na řádku 8?

#include <stdio.h>
#include <string.h>

int pole[12];

void nacti () 
{
gets(pole, 12,);
pole[10] = '\0';
}

void vypis_prvek( short j )
{
printf("%d\n", pole[j]);
}

int main (void)
{
  nacti();

  short j;
  for(j=0; j<10;j++) vypis_prvek(j);
  getchar();



}

Předem děkuji moc za odpověď.

Nahlásit jako SPAM
IP: 86.49.117.–
Reklama
Reklama
KIIV+42
God of flame
14. 5. 2014   #2
-
0
-

staci se na to podivat: 
gets(pole, 12,);
a hned tam ta chyba je videt... nejspis ti to i rika co presne se mu nelibi

Nahlásit jako SPAM
IP: 94.113.92.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Karel
~ Anonymní uživatel
121 příspěvků
14. 5. 2014   #3
-
0
-

#2 KIIV

Se omlouvám, ale jsem těžký začátečník a opravdu netuším. Píše mi to nekompatibilní ukazovatel.

Nahlásit jako SPAM
IP: 86.49.117.–
Karel
~ Anonymní uživatel
121 příspěvků
14. 5. 2014   #4
-
0
-

#2 KIIV
fgets(pole, sizeof(pole),);

zkouším to nahrazovat, tímto například, ale pořád to hlasí stejnou chybu

Nahlásit jako SPAM
IP: 86.49.117.–
KIIV+42
God of flame
14. 5. 2014   #5
-
0
-

zaprve se vetsinou nacita pole znaku tj. char pole[12]; ci tak podobne

pak tam porad mas nesmysl ve forme  carka a zavorka: fgets(pole, sizeof(pole) , );  - chtelo by to dodat i ten treti parametr, ktery ti tam chybi

Nahlásit jako SPAM
IP: 94.113.92.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Karel
~ Anonymní uživatel
121 příspěvků
14. 5. 2014   #6
-
0
-

#5 KIIV

#include <stdio.h>
#include <string.h>

char pole[12];

void nacti () //
{
fgets(pole, sizeof(pole), stdin);
pole[10] = '\0';
}

void vypis_prvek( short j )
{
printf("%d\n", pole[j]);
}

int main (void)
{
  nacti();

  short j;
  for(j=0; j<10;j++) vypis_prvek(j);
  getchar();



}

Pořád nefunguje:(.


takhle vypadalo původní zadání úkolu:

int pole[9];

void nacti ( ) // tato procedura nacte cele pole
{

}

void vypis_prvek(  ) //tato procedura vypise pozadovany prvek
{

}

int main (void)
{
  nacti();
  
  short j;
  for(j=0; j<10;j++) vypis_prvek(j);
  getchar();
  
  int d=0;
  if(!d)++d;
  if(d--)d+=2;
  printf("%i",d);
  getchar();
  
}

Nahlásit jako SPAM
IP: 86.49.117.–
Karel
~ Anonymní uživatel
121 příspěvků
14. 5. 2014   #7
-
0
-

#5 KIIV
respektive funguje, ale po zadaní znaků vypíše nesmysly.../

Nahlásit jako SPAM
IP: 86.49.117.–
KIIV+42
God of flame
14. 5. 2014   #8
-
0
-

#7 Karel
fgets je totiz na nacteni retezce ne cisel .. od toho je vetsinou fscanf/scanf :)

Nahlásit jako SPAM
IP: 94.113.92.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Karel
~ Anonymní uživatel
121 příspěvků
14. 5. 2014   #9
-
0
-

#8 KIIV
tak buď je špatně zadání, nebo jsem uplně demetní..:D

"Vhodně jej doprogramujte tak, že pouze doplníte kód a deklaraci funkcí nacti() a vypis_prvek(), aby program načetl od uživatele všechny prvky deklarovaného pole a posléze celé pole vytiskl."

Nahlásit jako SPAM
IP: 86.49.117.–
Karel
~ Anonymní uživatel
121 příspěvků
14. 5. 2014   #10
-
0
-

#8 KIIV
anebo prostě stačí takhle:

scanf( "%d" , pole );

?

Nahlásit jako SPAM
IP: 86.49.117.–
KIIV+42
God of flame
14. 5. 2014   #11
-
0
-

#10 Karel
spis:

for (int i=0; i<sizeof(pole); ++i) {
  scanf("%d",pole+i); // pripadne misto pole+i jde pouzit i &(pole[i]) - je to to same
}
Nahlásit jako SPAM
IP: 94.113.92.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Karel
~ Anonymní uživatel
121 příspěvků
14. 5. 2014   #12
-
0
-
Nahlásit jako SPAM
IP: 86.49.117.–
Karel
~ Anonymní uživatel
121 příspěvků
14. 5. 2014   #13
-
0
-

#11 KIIV
oki díky moc:)

Nahlásit jako SPAM
IP: 86.49.117.–
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, 150 hostů

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ý