Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 10 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
C: z getchar() do char *retazec

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok NapísalOffline : 27.09.2010 21:20

Nacitavam takto nejako znaky:
Kód:
int input;
char *retazec;

while( (input = getchar()) != EOF )
  {
      // sem nieco
  }

A potreboval by som tie znaky zapisovat do toho "retazec" a potom to naraz vytlacit cez printf.

Ako na to?

Dik







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
C: z getchar() do char *retazec

Registrovaný: 16.05.07
Prihlásený: 01.08.17
Príspevky: 837
Témy: 6
Príspevok NapísalOffline : 27.09.2010 23:35

skus si vyhradit miesto nejak char *retazec=malloc(sizeof(char)*xx)
xx je max pocet znakov potom nieco ako
Kód:
 
char *a;
//a v tom cykle
a=input;a++;







_________________
getch();?{readkey;?} na konci? !A naco! Riesenie je (Alt+F5)
99% pochopí a shaggy je druhá kategória
Offline

Užívateľ
Užívateľ
C: z getchar() do char *retazec

Registrovaný: 14.02.08
Prihlásený: 04.01.15
Príspevky: 1272
Témy: 46
Bydlisko: Bratislava
Príspevok NapísalOffline : 28.09.2010 9:04

no tak ja som to spravil nejak takto:
Kód:
# include<stdio.h>

int main(void)
{
    char retazec[6553],znak;
    int x=0,input;
   
    while((input=getchar()) !='X') {                   
     retazec[x]=input;
     x++;
     }
   
    retazec[x+1]='\0';
    printf("RETAZEC JE : %s",retazec);   
   
    getchar();
    getchar();
    return 0;
}


ty mozes pouzit aj pointer ale musis si alokovat miesto, ako to uz bolo napisane predo mnou, alebo mozes pouzit to co ja ze uz v deklaracii si alokujes miesto, ma to aj svoje nevyhody a aj vyhody ;)

edit: ten 'X' to som pouzil iba tak, len aby som to vedel ukoncit kedy chcem







_________________
CPU:AMD Phenom II X4 960T MB: GA-MA78GM S2H VGA: ASUS EAH4850 512MB DDR3 & AC L2 PRO RAM: 4x 1GB Kingstone 800Mhz PSU: CX400W HDD: SEAGATE Barracuda 7200.10 160GB + Seagate 320GB Monitor :19"LCD ASUS VB191T OS: Win 7 Ultimate 64 bit
Offline

Užívateľ
Užívateľ
C: z getchar() do char *retazec

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 08.10.2010 9:53

Dakujem.. funguju tie sposoby..

Este taka otazocka.. V tom while cykle potrebujem obcas cez for() ten retazec zopar krat printf-nut... Ale ked to dam napriklad 3 krat, tak to ale vytlaci strasne vela krat..

Co moze byt problem?







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 08.10.2010 10:10

zeby preto ze ti na konci chyba znak \0? ak si dobre pamatam tak v ansiC je retazec definovany ako ple znakov ukoncene znakom \0. kedze ty naplnas pole o dlzke 6553 z znak \0 do neho vlozis az na konci tak v loope ti stale vypisuje komplet pole. napln si najprv pole znakmi \0 napriklad metodou memset(retazec, '\0', 6553);


Offline

Užívateľ
Užívateľ
C: z getchar() do char *retazec

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 08.10.2010 10:21

Ale ja ho plnim len na 3 znaky.. nie naplno..

a aj po pouziti memset to robi..

Kód:
pocetOpakovani = 3;
for(e=1;e<=pocetOpakovani;e++) {
 printf("%s ", retazec);
}

Ked toto dam do toho while cyklu, tak to vypise4 velmi vela krat..

Ked napisem len printf trikrat pod seba, tak to vypise 3 krat...







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 08.10.2010 10:46

ake datove typy su "pocetOpakovani" a "e" ?


Offline

Užívateľ
Užívateľ
C: z getchar() do char *retazec

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 08.10.2010 10:55

integery..







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 08.10.2010 11:11

neviem co tam robis ale skusil som to v dev c++ takto a vypise vyspedok tri krat
Kód:
#include <cstdlib>
#include <iostream>
# include<stdio.h>

using namespace std;

int main(void)
{
    char retazec[6553],znak;
    int x=0,input;
   
    while((input=getchar()) !='X') {
     retazec[x]=input;
     x++;
     }
   
    retazec[x+1]='\0';
    int i,pocet;
    pocet = 3;
    for (i=0;i<pocet;i++) {
      printf("RETAZEC JE : %s",retazec);   
    }
   
 
    getchar();
    getchar();
    return 0;
}


Offline

Užívateľ
Užívateľ
C: z getchar() do char *retazec

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 08.10.2010 11:54

Ale ja som pisal:
Citácia:
Ked toto dam do toho while cyklu

Ja ten for() mam v tom while....

Naplnim retazec s troma znakmi napriklad a potom ich vypisem 5 krat za sebou.. potom zas naplnim 3 znakmi a vypisem 2 krat..

Mam to dobre spodmienkovane, pokial pouzijem viac printfov pod sebou, ide to presne tak, ako chcem..

Ale ked to dam do for(), kedze je to skarede, pisat printf viac krat pod sebuou, tak to zblbne.... (a pritom premenne vo FOR su korektne s cislami, co potrebujem..

// automaticky pridané po 8 minútach od posledného príspevku

Kód:
int main(void)
{
    char retazec[6553],znak;
    int x=0,input;
   
    while((input=getchar()) !='X') {
     retazec[x]=input;
     x++;
    int i,pocet;
    pocet = 3;
    for (i=0;i<pocet;i++) {
      printf("a");   
    }
     }
   
    retazec[x+1]='\0';
   
   
 
    getchar();
    getchar();
    return 0;
}

Co ti to vypise?

// automaticky pridané po 13 minútach od posledného príspevku

Ty vole, ja v tom pocetOpakovani mam naozaj nejake velke cisla! Ja to cisla nacitavam zo vstupu tiez...

A prave pozeram na ASCII tabulku a trieskam hlavu do stolu :D Dik moc :)







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Odpovedať na tému [ Príspevkov: 10 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. malloc retazec

v Assembler, C, C++, Pascal, Java

19

767

30.01.2012 9:55

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. c# retazec

v Technológia .NET

2

1530

23.08.2009 13:19

piton55 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C a retazec

v Assembler, C, C++, Pascal, Java

9

634

09.01.2011 14:16

ethi1ca4l Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Výstup ako jeden reťazec

v PHP, ASP

1

341

09.08.2017 12:44

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Assembler 8086 retazec odzadu

v Assembler, C, C++, Pascal, Java

5

710

26.04.2009 13:23

bbeni Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. skratit retazec na 10 znakov

v PHP, ASP

2

572

11.03.2010 18:27

1daemon1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ako najefektívnejšie rozdelit určitý retazec

v PHP, ASP

1

364

24.06.2009 8:33

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Retazec v podmienke, jazyk C

v Assembler, C, C++, Pascal, Java

2

441

05.01.2017 19:27

eversio Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. delete char*

v Assembler, C, C++, Pascal, Java

4

409

17.11.2012 20:04

m4r14n Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C Int to Char

v Assembler, C, C++, Pascal, Java

2

322

20.10.2012 15:13

faraon Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. char pole do int

v Assembler, C, C++, Pascal, Java

0

350

19.01.2011 22:38

1daemon1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. odelenie num a char

v PHP, ASP

2

342

10.11.2009 20:22

pilná lama glama Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C++ problem s char

v Assembler, C, C++, Pascal, Java

4

422

07.10.2012 18:52

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Banalny priklad-char. tranzistora

v Elektronika

10

1117

07.03.2007 12:43

Taomas Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zmena char na int

v Assembler, C, C++, Pascal, Java

6

507

02.02.2012 23:18

street_punk Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. mer. char.zenerovej diody

v Elektronika

0

486

10.01.2012 20:34

p4tooo Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra