Úloha v C - práce se vstupem. – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Úloha v C - práce se vstupem. – C / C++ – Fórum – Programujte.comÚloha v C - práce se vstupem. – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Martin Stiborský0
Návštěvník
24. 3. 2007   #1
-
0
-

Zdravím, začínám s C, mám takový problémek. Mám takovýhle skriptík:



#include <stdio.h>

main()
{
int i,z;
char x[1000];

for(i=0; ((z=getchar()) != EOF); ++i)
x[i] = z;

printf("%s", x);
}



Který vstup od uživatele uloží, a když narazí na EOF tak vypíše. Teď bych potřeboval, aby když se na vstupu objeví nějaký znak, tak aby se ten znak přepsal na něco jiného.
Například if(z=='o') z='a'; by udělalo z 'o' písmenko 'a'. Akorát když to takhle přidám do skriptu, dostanu po vypsání nesmyslné znaky, a ne vstup. Kde dělám chybu ?

Nahlásit jako SPAM
IP: ...–
už mám taky blogísek :) http://www.stibi.org/blog
Reklama
Reklama
sn3d0
Věrný člen
24. 3. 2007   #2
-
0
-

vobec nechapem ale mozno pomoze toto:




#include <stdio.h>

main()
{
int i,z;
char x[1000];

memset(x, NULL, 1000);

for(i=0; ((z=getchar()) != EOF); ++i)
x[i] = z;

printf("%s", x);
}



ale ako som spominal, nechapem vo co go .. skus dat presne ten kod ktory ti to roby

Nahlásit jako SPAM
IP: ...–
shutdown -h now
Martin Stiborský0
Návštěvník
24. 3. 2007   #3
-
0
-

No, stydím se za sebe. Já zhýčkán Pythonem, nemyslel jsem na závorky ...



for(i=0; ((z=getchar()) != EOF); ++i)
{
if (z=='o') z='a';
x[i] = z;
}


Tohle udělá ze všech 'a' na vstupu písmenko 'z'. Teď už mám jasno, závorky, závorky, závorky ..

Nahlásit jako SPAM
IP: ...–
už mám taky blogísek :) http://www.stibi.org/blog
sn3d0
Věrný člen
24. 3. 2007   #4
-
0
-

ach jaj :) este ze tak.. Inac mohol si tam dat cely kod.. clovek by hned vedel kde je chyba..

Nahlásit jako SPAM
IP: ...–
shutdown -h now
Tax0
Super člen
24. 3. 2007   #5
-
0
-

No bylo by dobré dát ten skrpit sem, jinak tvůj program nefunguje, ani nemůže jelikož EOF nikdy sežrat nemůže getchar() uloží pouze jeden znak. Nebo víceméně funguje v pořádku se překompiluje ale zůstane v nekonečné smyčce
Jinak nekonečné cykly se neřeší přez for ale přez while případně do - while.
Pokud máš string musí končit /0. pokud čteš ze vstupu tak si /0 doplňuje na konec posledního znaku ve stringu sám, ty to děláš ale po znacích sám takže před výpisem stringu musíš na za polední znak dát /0.
Tu podmínku můžeš vyřešit třeba takto



char str[10];
scanf("%s", str);

do
{
......
........
}
while ( str != 'EOF')

no, závorky jsou samozřejmě taky chyna ale obejde se i bez nich. Dej sem celý kod.
Nevím ale co přesně po tom programu chceš aby dělal.

Nahlásit jako SPAM
IP: ...–
Carpe diem. (Horatius)
Jak se liší Windows a Tamagoči? Windows chcípnou, i když se o ně staráte.
Viete ako spoznáte závislosť na internete? Keď narazíte autom do zvodidiel, a prvé čo hľadáte je back.Vsetci mi hovoria, ze meno kocura sa ako heslo pre roota nehodi. :-( Ale ked ja som si tak privykol na mojho qzb!7kw_2et !
Jura
~ Anonymní uživatel
634 příspěvků
25. 3. 2007   #6
-
0
-

To Tax:
Ten priklad je naprosto spravne. EOF je konstata;). Tzn., ze je nekde v nejakem hlavickovem souboru neco podobneho:



#define EOF (nejaka_hodnota)

Nahlásit jako SPAM
IP: ...–
Tax0
Super člen
25. 3. 2007   #7
-
0
-

To Jura: no j když napíše pát drobků jak to potom z toho má člověk pochopit :)

Nahlásit jako SPAM
IP: ...–
Carpe diem. (Horatius)
Jak se liší Windows a Tamagoči? Windows chcípnou, i když se o ně staráte.
Viete ako spoznáte závislosť na internete? Keď narazíte autom do zvodidiel, a prvé čo hľadáte je back.Vsetci mi hovoria, ze meno kocura sa ako heslo pre roota nehodi. :-( Ale ked ja som si tak privykol na mojho qzb!7kw_2et !
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, 63 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ý