Načítání slov ze souboru – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Načítání slov ze souboru – C / C++ – Fórum – Programujte.comNačítání slov ze souboru – C / C++ – Fórum – Programujte.com

 

Bery
~ Anonymní uživatel
7 příspěvků
22. 5. 2015   #1
-
0
-

Ahoj, mám takový problém, potřebuji načíst z textového souboru seznam slov, se kterými poté dál budu pracovat (např. zjišťovat jejich délku atp.). Potřeboval bych radu, do jakého datového typu bych je měl nejlépe uložit abych měl později přístup k jednotlivým písmenům. A ještě dotaz jak je načíst ze soubory, když jsou vypsána pod sebou a mají každé jinou délku. Za každou radu předem moc a moc děkuji!

Nahlásit jako SPAM
IP: 178.216.151.–
22. 5. 2015   #2
-
0
-

Slova v souboru budou oddělena "bílými" znaky. Když si soubor prohlédneš jako binární, zjistíš, jaké to jsou. Pokud jsou to znaky pro konec řádku, můžeš slovo načítat jako řádek. Slovo bych uložil do std::string, a ty pak uložil do std::vector.

hu

Nahlásit jako SPAM
IP: 2001:67c:1222:800:c1ad:ec...–
PiranhaGreg0
Stálý člen
22. 5. 2015   #3
-
0
-

Kdyby něco nebylo jasný, ptej se ;-) 

#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;

int main(void) {
	// otevřeme soubor pro čtení
	ifstream file("text.txt");

	// struktura pro ukládání slov
	vector<string> words;

	// pomocný objekt pro načítání slov
	string tmp;

	// vkládáme slova ze souboru do struktury,
	// dokud nenarazíme na konec souboru
	while(getline(file, tmp))
		words.push_back(tmp);

	// zavřeme soubor
	file.close();

	// vypíšeme načtená slova
	for (const auto & word : words)
		cout << word << endl;

	// vypíšeme druhé písmeno třetího slova
	cout << words[2][1] << endl;

	return 0;
}
Nahlásit jako SPAM
IP: 2a00:1028:9942:b69e:e821:...–
Bery
~ Anonymní uživatel
7 příspěvků
22. 5. 2015   #4
-
0
-

#3 PiranhaGreg
no mám tu ještě jeden problém, dělám program do školy k vyřešení osmisměrky a když načtu písmena osmisměrky tímto stylem po volání funkce pro zobrazení mi vypisuje pouze ĚĚĚĚĚĚĚ. Obsahuje diakritické znaky a nevím jestli to mám všechno odháčkovat a odčárkovat nebo na to použít nějakou funkci

bool Nacist(char *nazevDat, Matice mat, int Sloupce, int Radky)
{
    bool nacteni = false;
    char c;
    FILE *Soubor = fopen(nazevDat,"r");
        if(Soubor!=NULL){#3 PiranhaGreg

            nacteni = true;
            for(int i=0;i<Radky;i++){
            for(int j=0;j<Sloupce;j++){
                c = getc(Soubor);
                mat[Radky][Sloupce] = c;
            }}}
        else printf("Chyba nacteni souboru");
    fclose(Soubor);
    return nacteni;
}


Nahlásit jako SPAM
IP: 178.216.151.–
Bery
~ Anonymní uživatel
7 příspěvků
22. 5. 2015   #5
-
0
-

#3 PiranhaGregJsem začátečník, máme to C jen teď na škole a řeším závěrečný projekt. S těmi funkcemi co uvádíš ve zdrojovým kódu jsem se ještě nesetkal :(

Nahlásit jako SPAM
IP: 178.216.151.–
KIIV
~ Moderátor
+43
God of flame
22. 5. 2015   #6
-
0
-

#4 Bery
mat[Radky][Sloupce] = c;
To bude asi tim, ze to furt sazis na to same misto v matici... a pokud je jeste definovana o velikosti Sloupce a Radky, tak dokonce za ni.

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Bery
~ Anonymní uživatel
7 příspěvků
22. 5. 2015   #7
-
0
-

#6 KIIV
Nojooo, to jsem uplně přehlídl...nahrazením za i a j se to vyřešilo a už to funguje

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

Podobná vlákna

Načítání slov z .txt — založil Crassty

Kontrola slov ze souboru. — založil georgiok

Nahrazení slov v souboru txt — založil GunSpawn

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ý