Textový soubor do 2D pole – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Textový soubor do 2D pole – C / C++ – Fórum – Programujte.comTextový soubor do 2D pole – C / C++ – Fórum – Programujte.com

 

Gregory
~ Anonymní uživatel
2 příspěvky
13. 5. 2015   #1
-
0
-

Čau lidi, hele potřeboval bych trošku nasměrovat, co se týče souborů v C.

Musím z textového souboru načíst matici znaků(mxn), vložit pokud možno do pole a to stejné s jiným souborem se seznamem slov, které jsou tedy různě dlouhé. Můžeme předpokládat, že znám velikost matice znaků. Vyzkoušel jsem toho už hodně, různá fóra v angličtině, ale nic rozumně funkčního. 

Díky za každou reakci.

Nahlásit jako SPAM
IP: 86.49.174.–
vitamin+8
Grafoman
13. 5. 2015   #2
-
0
-

Preco to chces ukladat do 2d pola?

Nahlásit jako SPAM
IP: 178.162.199.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Gregory
~ Anonymní uživatel
2 příspěvky
13. 5. 2015   #3
-
0
-

#2 vitamin
Především, protože s ním jsme dělali nejčastěji a myslel jsem, že další manipulace s daty v nich bude snažší. Můj projekt spočívá v řešení osmisměrky, kde z jednoho souboru načítám matici znaků a z druhého slova, která jsou v matici skryta, dříve jsem dělal v pascalu a tam bych si možná věděl rady, ale jazyk C jsem doposud pořádně nepobral. Jde mi hlavně o to čtení ze souboru do přijatelnějšího typu.

Nahlásit jako SPAM
IP: 86.49.174.–
scooty14
~ Anonymní uživatel
1 příspěvek
15. 5. 2015   #4
-
0
-

#3 Gregory
Načítanie slov zo súboru, pokiaľ poznáš ich počet:

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

int main()
{
	FILE * input = fopen("slova.txt","r");
	//pocet slov, ktore budeme nacitavat (uvedene v subore v prvom riadku)
	int pocet;
	//tu budu ulozene slova
	char ** slova; 
	//sem budeme nacitavat, maximalna dlzka slova = 49
	char buffer[50];
	//nacitame pocet slov
	fscanf(input, "%d", &pocet);
	//alokujeme pamat
	slova = (char **)malloc(pocet*sizeof(char*));
	int i;
	for (i=0; i<pocet; i++)
	{
		//nacitame slovo do bufferu
		fscanf(input, "%s", buffer);
		//zistime jeho dlzku
		int length = strlen(buffer);
		//alokujeme pren pamat
		slova[i] = (char*)malloc((length+1)*sizeof(char));
		//skopirujeme slovo z bufferu do pola
		memcpy(slova[i], buffer, length+1);
	}
	
	//vypiseme slova
	for (i=0; i<pocet; i++) printf("%s\n",slova[i]);
	fclose(input);
	//uvolnime pamat
	for (i=0; i<pocet; i++) free(slova[i]);
	free(slova);
	return 0;
}
Nahlásit jako SPAM
IP: 91.127.13.–
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, 64 hostů

Podobná vlákna

Soubor v C dynamicke pole — založil risakczex

SOUBOR.BAT&gt;SOUBOR.EXE — založil wokena

Textový parametr — založil don_Dominique

Tkinter - Textový editor — založil Poky

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ý