[ 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 | 233
Bydlisko: Nové Zámky
NapísalOffline : 27.09.2010 21:20 | C: z getchar() do char *retazec

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 | 6
NapísalOffline : 27.09.2010 23:35 | C: z getchar() do char *retazec

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 | 46
Bydlisko: Bratislava
NapísalOffline : 28.09.2010 9:04 | C: z getchar() do char *retazec

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 | 233
Bydlisko: Nové Zámky
Napísal autor témyOffline : 08.10.2010 9:53 | C: z getchar() do char *retazec

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 | 2
NapísalOffline : 08.10.2010 10:10 | C: z getchar() do char *retazec

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 | 233
Bydlisko: Nové Zámky
Napísal autor témyOffline : 08.10.2010 10:21 | C: z getchar() do char *retazec

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 | 2
NapísalOffline : 08.10.2010 10:46 | C: z getchar() do char *retazec

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 | 233
Bydlisko: Nové Zámky
Napísal autor témyOffline : 08.10.2010 10:55 | C: z getchar() do char *retazec

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 | 2
NapísalOffline : 08.10.2010 11:11 | C: z getchar() do char *retazec

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 | 233
Bydlisko: Nové Zámky
Napísal autor témyOffline : 08.10.2010 11:54 | C: z getchar() do char *retazec

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ď
 [ Príspevkov: 10 ] 


C: z getchar() do char *retazec



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

826

30.01.2012 9:55

Fico

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

c# retazec

v Technológia .NET

2

1568

23.08.2009 13:19

piton55

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

C a retazec

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

9

670

09.01.2011 14:16

ethi1ca4l

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

Výstup ako jeden reťazec

v PHP, ASP

1

378

09.08.2017 12:44

BX

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

Assembler 8086 retazec odzadu

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

5

759

26.04.2009 13:23

bbeni

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

skratit retazec na 10 znakov

v PHP, ASP

2

606

11.03.2010 18:27

1daemon1

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

ako najefektívnejšie rozdelit určitý retazec

v PHP, ASP

1

391

24.06.2009 8:33

Ďuri

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

Retazec v podmienke, jazyk C

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

2

475

05.01.2017 19:27

eversio

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

delete char*

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

4

444

17.11.2012 20:04

m4r14n

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

mer. char.zenerovej diody

v Elektronika

0

516

10.01.2012 20:34

p4tooo

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

C Int to Char

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

2

353

20.10.2012 15:13

faraon

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

char pole do int

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

0

379

19.01.2011 22:38

1daemon1

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

odelenie num a char

v PHP, ASP

2

374

10.11.2009 20:22

pilná lama glama

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

C++ problem s char

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

4

457

07.10.2012 18:52

Fico

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

Banalny priklad-char. tranzistora

v Elektronika

10

1161

07.03.2007 12:43

Taomas

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

Zmena char na int

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

6

542

02.02.2012 23:18

street_punk



© 2005 - 2024 PCforum, edited by JanoF