čítanie z textového súboru C

Programovacie jazyky, rady, poradňa...
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

čítanie z textového súboru C

Príspevok od používateľa beluský »

Dobrý, tu je zadanie, aby sa predošlo omylom :)

Kód: Vybrať všetko

Napíšte program, ktorý otvorí súbor SLOVA.TXT na čítanie a pre každý riadok vypíše jeden
blok výstupu. Tento blok obsahuje v prvom riadku správu Riadok cislo: nasledované
jednou medzerou a číslom riadku. Potom nasledujú slová načítané z tohto riadku súbora
vypísané vždy do zvlášt’ riadku. Každý, teda aj posledný riadok bloku je ukončený znakom
konca riadku.
Na načítanie riadku použite funkciu fgets. Predpokladajte, že dĺžka riadku je najviac 255
znakov a riadky obsahujú len malé písmená, veľké písmená a medzery. Ďalej
predpokladajte, že:
(a) slová v každom riadku sú oddelené vždy jednou medzerou,
(b) slová v riadkoch môžu byt’ oddelené aj viacerými medzerami či tabulátormi.
Ukážka súboru SLOVA.TXT pre (a):
Toto            je
subor            obsahujuci         slova
Ukážka výstupu:
Riadok cislo: 1
Toto
je
Riadok cislo: 2
Subor
obsahujuci
slova
a tu som sa to pokúšal urobiť... ale neviem ako mám čítať z riadok tak aby som čítal len slová a medzery vynechal a poznám vlastnosť funkcie scanf, že číta len slová a medzery vynechá... teda svojo, prvé... neviem ako čítať ďalšie...

Kód: Vybrať všetko

#include <stdio.h>
#include <string.h>

int main ()
{
	FILE *f;
	char riadok[255];
	char slovo[100]="";
	char s;
	int i=0;

	f = fopen("subory.txt","r");

	while (fgets(riadok, 255, f) != NULL)
	{
		for(i=0; i < strlen(riadok); ) {
			while (sscanf(riadok+i,"%s",slovo)) 
				i++;
		
				sscanf(riadok+i, "%s",slovo);
				printf("%s\n",slovo);
		}
	}


	fclose(f);
	return 0;
}
vďaka za radu
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

Príspevok od používateľa Mek »

my sme na C robili program na rozlisovanie slov, ale tu sme nacitavali z klavesnice. Mozno ti to pomoze, ked ho sem dam:

Kód: Vybrať všetko

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

char slovo[100];
int poz=0;
int c;

void main(void)
{
	textmode(C80);
	clrscr();
	for (;;)
	{
		c=getchar();
		slovo[poz]=c;
		poz++;
		if ((c==' ') || (c=='\n'))
		{
			slovo[poz-1]='\0';
			if (slovo[0]!='\0') printf("+%s+\n",slovo);
			poz=0;
		}
		if (c=='\n') break;
	}
	getch();
}
Napísať odpoveď