Nacitanie celeho slova zo suboru do premennej - pretypovanie – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nacitanie celeho slova zo suboru do premennej - pretypovanie – C / C++ – Fórum – Programujte.comNacitanie celeho slova zo suboru do premennej - pretypovanie – C / C++ – Fórum – Programujte.com

 

Rudolf0
Newbie
9. 7. 2006   #1
-
0
-

Ahoj,

potreboval by som poradit s jednou vecou. Travim nad tym vela casu a ziadany vysledok.

Takze: Mam vstupny subor v ktorom mam vetu typu "100 200 Nejaky text". Jedna sa o to, ze potrebujem nacitat kazde slovo samostatne do nejakej premennej. Napr. a = 100 ; b = 200; c = "Nejaky text".

S nacitanim celeho suboru nie je problem:

int main() {

FILE * vstup;
char buf[512], buf2[512];
int i = 0;

vstup = fopen("prikaz.txt", "r"); // subor s textom "100 200 Nejaky text"

while (!feof(vstup)) { // pokial nie je koniec
buf = fgetc(vstup); // nacitanie znaku zo suboru
buf2[i] = buf; // preklopenie buf do buf2
i++;
putchar(buf); // vypisanie znaku na obrazovku
}

}

- ako dostanem napr. cislo 100 z buf2[] do nejakej premennej s tym ye ho este pretypujem na int ???


Za akukolvek pomoc dakujem..


Nahlásit jako SPAM
IP: ...–
Jura_0
Stálý člen
9. 7. 2006   #2
-
0
-

Pokud onen soubor ma stale stejnou strukturu, tedy:



100 200 Nejaky text
250 2223 Dalsi text


A chcete to rozdelovat do promennych, tak pak bych spise navrhoval to nacitat trochu jinak nez po znacich(nemluve o tom, ze to mate ve skoro cele spatne). Cili zde uvedu sve reseni:


#include <stdio.h>
#include <stdlib.h>

#define MAX_LINE 256

int main(int argc, char *argv[])
{
int a, b;
char line[MAX_LINE];
FILE *fr = fopen("neco.txt", "r");
if(!fr) return errno;
while(fscanf(fr, "%d %d", &a, &b) == 2){
fgets(line, MAX_LINE, fr);
printf("a = %dnb = %dnbuf = %sn", a,b, line);
}
fclose(fr);
system("PAUSE");
return 0;
}


A vystup:


a = 100
b = 200
buf = Nejaky text

a = 250
b = 2223
buf = Dalsi text
Pokračujte stisknutím libovolné klávesy...

Nahlásit jako SPAM
IP: ...–
Rudolf0
Newbie
10. 7. 2006   #3
-
0
-

Dakujem za radu, s tym citanim "slov" som tu uz chcel realizovat, ale potreboval som sa niecoho chytit...

have a nice day :skunk: :ok:

Nahlásit jako SPAM
IP: ...–
Rudolf0
Newbie
13. 7. 2006   #4
-
0
-

Zdar,

mam taky (uz nemozem dalej :( ) problem s nacitanim menej poloziek so suboru, ako je dane. V subore "vstup.txt" mam vlozene:

1 1 10
1 1 10
2 2
3 3

Jedna sa o to, ze v nizsie uvedenom kode, kde do prem. p ukladam pocet nacitanych poloziek zo suboru, je stale cislo 3. Posledne 2 riadky zo suboru vsak maju len 2 polozky ???? Fakt neviem, uu to riesim snad dva dni. :(

Potreboval by som to upravit tak, ze ak su v subore - riadku len 2 ciselne polozky, cyklus sa prerusi. Predpokladam, ze:

while (pocet = fscanf(vstup, "%d %d %d", &xe, &ye, &re) == 3) // NEFUNGUJE

int xe, ye, re, pocet;

FILE *p;

p = fopen("vstup.txt", "r");

while (pocet = fscanf(vstup, "%d %d %d", &xe, &ye, &re)) {
printf("Pocet %d", &pocet);
}

.
.

Za pomoc dakujem

Nahlásit jako SPAM
IP: ...–
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, 4 hosté

Podobná vlákna

Načítanie zo súboru — založil Grungy

Načítanie matice zo súboru — založil DušanDinoZzo

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ý