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..
Fórum › C / C++
Nacitanie celeho slova zo suboru do premennej - pretypovanie
![](img/forum_vlakno_help_vyreseno.png)
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...
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
![](img/forum_nove_psp_new.png)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
![](/img/smile/1.gif)
![](/img/smile/2.gif)
![](/img/smile/3.gif)
![](/img/smile/4.gif)
![](/img/smile/5.gif)
![](/img/smile/6.gif)
![](/img/smile/7.gif)
![](/img/smile/8.gif)
![](/img/smile/9.gif)
![](/img/smile/10.gif)
![](/img/smile/11.gif)
![](/img/smile/12.gif)
![](/img/smile/13.gif)
![](/img/smile/14.gif)
![](/img/smile/15.gif)
![](/img/smile/16.gif)
![](/img/smile/17.gif)
![](/img/smile/18.gif)
![](/img/smile/19.gif)
![](/img/smile/20.gif)
![](/img/smile/21.gif)
![](/img/smile/22.gif)
![](/img/smile/23.gif)
![](/img/smile/24.gif)
![](/img/smile/25.gif)
![](/img/smile/26.gif)
![](/img/smile/27.gif)
![](/img/smile/28.gif)
![](/img/smile/29.gif)
![](/img/smile/30.gif)
![](/img/smile/31.gif)
![](/img/smile/32.gif)
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Načítavanie celého čísla zo súboru — založil gaben
Načítanie zo súboru — založil Grungy
C - Načítanie matice zo súboru — založil Calissa
Načitanie txt súboru. — založil Redix
Načítanie matice zo súboru — založil DušanDinoZzo
Moderátoři diskuze