Čtení řetězce ze souboru od určitého znaku – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Čtení řetězce ze souboru od určitého znaku – C / C++ – Fórum – Programujte.comČtení řetězce ze souboru od určitého znaku – C / C++ – Fórum – Programujte.com

 

Michal
~ Anonymní uživatel
683 příspěvků
8. 12. 2012   #1
-
0
-

Zdravím, potřebuju poradit když si načtu soubor a potřebuju z něj určitou část řetězce? jak na to ? zkoušel jsem to tak že jsem si to nejdřívě načetl do pole a potom vypsal jen to co chci, sice mi to vypíše to co chci ale + další nesmysli co nepotřebuju :D níže ten kod jak jsem to řešil, díky předem za pomoc :)

FILE *f;
char slovo[20];
char noveSlovo[4];
int x=0;
int i;
f = fopen("data.txt","r");
fgets(slovo,19,f);

for (i = 4; i < 8 ; i++)
{
noveSlovo[x] = slovo[i];
x++;
}
printf("%s", noveSlovo);


system("Pause");

Nahlásit jako SPAM
IP: 188.120.212.–
crazy
~ Moderátor
+10
Grafoman
8. 12. 2012   #2
-
0
-

#1 Michal
musíš ten řetězec ukončit znakem '\0', jinak ti to bude číst dále

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
Michal
~ Anonymní uživatel
683 příspěvků
8. 12. 2012   #3
-
0
-

#2 crazy
muzes to ukazat v kodu? díky

Nahlásit jako SPAM
IP: 188.120.212.–
KIIV
~ Moderátor
+43
God of flame
8. 12. 2012   #4
-
0
-

nevis jak za konec retezce vlozit znak '\0' ? na predchozi pozice si vkladal jine znaky.. funguje to stale stejne

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Michal
~ Anonymní uživatel
683 příspěvků
8. 12. 2012   #5
-
0
-

#4 KIIV
Nevím jak to použít v mém případě dejme tomu že data.txt obsahuje "W  1589  8896 DDDD" a ja z toho chci dostat 1589 jak to aplikovat na mém kodu

Nahlásit jako SPAM
IP: 188.120.212.–
KIIV
~ Moderátor
+43
God of flame
8. 12. 2012   #6
-
0
-

das za cyklus  noveSlovo[x] = '\0'; ?

samozrejme pokud se ti pozice meni, tak to bude chtit neco jako stavovy automat...

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Michal
~ Anonymní uživatel
683 příspěvků
8. 12. 2012   #7
-
0
-

#6 KIIV
vyřešeno už vím kde jsem dělal chybu :) díky moc! :)

Nahlásit jako SPAM
IP: 188.120.212.–
Michal
~ Anonymní uživatel
683 příspěvků
8. 12. 2012   #8
-
0
-

#6 KIIV
muzu mit jeste jeden hloupej dotaz? kdyz bych si takhle vytahl nejaky cislo v podobe charu jak bych to mohl pretypovat na int nebo float?  ze kdyz se to snazim pretypovat vzdy mi to pak pro pretypovani vypise 0

Nahlásit jako SPAM
IP: 188.120.212.–
KIIV
~ Moderátor
+43
God of flame
8. 12. 2012   #9
-
0
-

musi se pres konverzni funkce... atof nebo tak (nepamatuju si presne)...

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Michal
~ Anonymní uživatel
683 příspěvků
8. 12. 2012   #10
-
0
-

jj už jsem si to našel a když mám rozsáhlejší soubor na více řádku a chci jen urcita slova z každeho radku jak funguje odradkovani kdyz projizdim ten soubor: projel sem cyklem prvni radek vybral si co sem chtel a ted potrebuju projet druhej radek souboru. Vím že odřádkování jako takové je \n ale nevím jak to použít aby začal číst druhý řádek souboru

Nahlásit jako SPAM
IP: 188.120.212.–
KIIV
~ Moderátor
+43
God of flame
8. 12. 2012   #11
-
0
-

opet stavovy automat... a zbytek radku se musi tak jak tak nacist ...

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Michal
~ Anonymní uživatel
683 příspěvků
8. 12. 2012   #12
-
0
-

no jasny nacte se ale proste nevím jak přejít na ten další v tom souboru

Nahlásit jako SPAM
IP: 188.120.212.–
KIIV
~ Moderátor
+43
God of flame
8. 12. 2012   #13
-
0
-

stavovy automat:

stav 1: cekam na pozadovany znak

stav 2: nacitam co potrebuji ... do stavu 3 az po nejakem znaku co uz tam nepatri

stav 3: zahazuji vse .. nastavit stav 1 po nacteni \n

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Michal
~ Anonymní uživatel
683 příspěvků
8. 12. 2012   #14
-
0
-

Tohle chápu ale nevím jak to použít v kodu, to odřádkování souboru

Nahlásit jako SPAM
IP: 188.120.212.–
KIIV
~ Moderátor
+43
God of flame
8. 12. 2012   #15
-
0
-

tak sem dej jak myslis ze by to mohlo fungovat... (mimochodem je to jen znak)

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Michal
~ Anonymní uživatel
683 příspěvků
8. 12. 2012   #16
-
0
-

int main()
{

FILE *f;
char slovo[256];
char noveSlovo[256];
int x=0;
int i,j,k;
double cislo;
double vysledek;
char zn;
f = fopen("data.txt","r");
fgets(slovo,31,f);

printf("%s\n",slovo);
for (j=0; j < 2; j++)
{

for (i = 23; i < 31 ; i++)
{
noveSlovo[x] = slovo[i];

x++;
}

noveSlovo[7] = '\0';
printf("%s\n", noveSlovo);
 

}

//cislo = atof(noveSlovo);
//printf("%f\n", cislo);
//vysledek = cislo / 60;
///printf("%f\n", vysledek);

system("Pause");


}

aby to po tom druhém cyklu odřádkovalo

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

Moderátoři diskuze

 

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