Alebo to skus cez char. :)
Příspěvky odeslané z IP adresy 178.40.119.–
Zdravím potrebujem pomoc ohladne nahodneho slova, ktore by som vytiahol zo subora.
Skusal som urobit funkciu ktora by hadzala nahodne cislo od 0 do pocet slov ktore sa nachadzaju v txt dokumente.
A nasledne nato by som urobil cyklus.
Lenze tu je problem ked urobim cyklus tak neviem vobec ako dosiahnut toho aby preskakovalo urcite riadky ktore koncia na \n a vypisala urcity riadok.
priklad;
V subore txt je: 10 riadkov.
Program nahodne vyberie 1 z 10 riadkov;
Nasledne ho ulozi do premennej s ktorou budem chciet pracovat koli hadaniu pismen.
Vedel by mi niekto skusený poradiť ?
Ďakujem :)
#13 yaqwsx
a read.eof() s ! teraz mi to funguje ale vratil som sa naspet tam kde som bol pred hodinou a pol...
Ked napisem trebars:
Medved
Macka
Lietadlo
A nasledne chcem vypisat ulozene slova zo subora, ktore su ulozene spravne tak mi vypise slovo Lietadlo 2krat
priklad..
Ulozene slova:
Medved
Macka
Lietadlo
Lietadlo
tu je zdrojak lebo ja uz fakt neviem skusal som poprehadzovat cout ale potom to ani nehne
if (write.good())
{
system("CLS");
ifstream read;
cout << "Text bol uspesne ulozeny\n";
read.open("D:/RandomText.txt");
if (read.is_open())
{
while (!read.eof())
{
read >> s;
cout << s << endl;
};
read.close();
cin.get();
};
Myslite ze bude problem v tom, ze som "string s" nastavil ako globalnu premennu hned na zaciatku funkcie ??
#11 yaqwsx
#10 voty
ale pokial znova vytvorim novu premenu string tak ta neobsahuje ziaden text..
takze read >> s je uplne neplatne pretoze do vstupu sa nenacita ziaden znak...
Momentalne mam problem s vytisknutim slov raz mi to slo a uz mi to nejde..
if (write.good())
{
system("CLS");
ifstream read;
cout << "Text bol uspesne ulozeny\n";
read.open("D:/RandomText.txt");
string s;
if (!read.is_open())
{
while (read.eof())
{
read >> s;
cout << s << endl // ak pouzijem tuto variantu vytiskne mi to posledne zadane slovo
};
};
Tak isto som skusal string s davat ako lokalnu a globalnu premennu a nic sa nezmenilo takze asi ostanem na globalnej ?
Mám ešte jednu otazku :)
Ak chcem vypisovat zo subora tak aku premennu tam mam zadat ?
Pretoze ked som dal newWords ukazovalo to chybu v prudoch a ked som urobil z size_t i = 0 globalnu premennu ani vtedy mi to neslo tu je kusok zo zdrojoveho kodu.
///////////////////////////////////////////////////////////////////////////
case 1: {
system("CLS");
cout << "Pomoz nam vylepsit hru pridanim novych slov\n";
cout << "Mozes zadat maximalne 3 nove slova\n";
////////////Cyklus pridanie slov/////////////////////
for (int x = 0; x < 3;x++){
string s;
cin >> s;
newWords.push_back(s);
};
ofstream write;
write.open("D:/RandomText.txt",ios::out);
if (write.fail())
{ cout << "Subor sa nepodarilo otvorit\n";
}
else{
////////Cyklus ukladania do subora//////
for(size_t i=0;i!= newWords.size();i++)
{
write << newWords[i] << endl;
};
if (write.good())
{
system("CLS");
cout << "Text bol uspesne ulozeny\n";
cout << "Slova ktore boli ulozene:\n";
////////////////////////Citanie zo subora///////////////
read.open("D:/RandomText.txt");
if (read.is_open()){
while (!read.eof()){
read >> newWords.push_back(s); // Tu nastava problem
cout << newWords[i];
cin.get();
//////////////////////////////////////////////////////////////////////////////////
Prave ma napadlo ze urobim dalsi cyklus ale aj tak neviem, ako to zo subora vytiahnut...
Ďakujem :)
#1 Patrik
Zdravím, :)
Rozhodol som sa urobit velmi lahku konzolovu hru kde bude clovek hadat slovo..
V game manu moze zvolit moznost pridat slovo a tu je problem..
Chcel by som aby sa vsetky slova co napise, zapisali do premennej typu string a tie nasledne boli zapisane do subora.
Som zaciatocnik preto prosim o pomoc skusenejsich.
/////////////////////////////////////////////////////
for (int x = 0;x < numofWords;x++) // Uzivatel si zada pocet slov ktore chce zadat.. pozn.Trocha neprakticke ja viem.
{
cin >> newWords; // Tu som si niesom isty ci moze byt Char alebo string ale obydvoje funguju no problem je v tom
// ze ked mam string a zapisem slovo, dalsie slova sa neuchovaju v premennej newWords ale iba posledne slovo
};
ofstream write;
write.open("D:/RandomText.txt",ios::out);
if (write.fail())
{ cout << "Subor sa nepodarilo otvorit\n";
}
else{
write << newWords << endl; // Zapis do subora, tu by som chcel dat cyklus, ktory by hned aj zapisoval slova za //sebou do riadku lenze string a char mi to nedovolia ako to mam urobit ?
write << newWords << endl;
write << newWords << endl;
write << newWords << endl;
write.close();
}
//////////////////////////////
Snad je to vsetko zrozumitelne napisane..
Ďakujem za pomoc :)