Formatovanie textoveho suboru (c++)

Programovacie jazyky, rady, poradňa...
Blade.m
Medium Star
Medium Star
Príspevky: 454
Registrovaný: 06 apr 2007, 20:10
Bydlisko: Čadca

Formatovanie textoveho suboru (c++)

Príspevok od používateľa Blade.m »

Zdravim, v skole sme dostali taku ulohu, ze mame spravit program, ktory otvori textovy subor a text zarovna (v jednom riadku bude napr. 30 znakov) a zalomi riadok...nooo a mam mensi problem pri zostaveni tohto programu...napisal som kod pre otvorenie textoveho suboru, ale absolutne netusim aka ma byt podmienka, aby v kazdom riadku bolo 30 znakov a aby sa text nerozdeloval napr. na konci riadka bude vychadzat slovo hojko a J uz bude 30 znak, tak to ko by uz malo byt na novom riadku, ale my musime spravit taku podmienku, aby nerozdelovalo slovo...dufam, ze som to napisal aspon trosku zrozumitelne a najde sa niekto kto by mi aspon trosku pomohol (viem, ze ulohy tu nikto za nikoho robit nebude ani o to nikoho neziadam, aby to cele za mna urobil, len aby ma trosku naviedol na to co by tam mohlo byt... :)) budem vdacny za akukolvek radu :)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Formatovanie textoveho suboru (c++)

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

budeš od tridsiateho znaku "cestovať" po znaku doľava, až kým nenájdeš medzeru. Pri tomto cestovaní si budeš nejakú premennú, ktorá bude mať počiatočnú hodnotu 30 znižovať o jedna. Keď nájdeš medzeru, nájdeš aj číslo ktoré určuje posledný znak za ktorým sa má useknúť. Táto premenná sa bude na 30 nastavovať pri každom novom riadku.
Blade.m
Medium Star
Medium Star
Príspevky: 454
Registrovaný: 06 apr 2007, 20:10
Bydlisko: Čadca

Re: Formatovanie textoveho suboru (c++)

Príspevok od používateľa Blade.m »

dik :)

Spravil som nieco taketo, len mam s tym problem, ze rozdeluje mi slova, ale podmienkou je, aby to nerozdelovalo. A nerozdeluje odseky zariadkovanim, co by zas malo. Pls poradte co tam treba este dopisat alebo opravit, neviem si s tym uz rady :(. Dakujem za kazdu radu :).

Kód: Vybrať všetko

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

using namespace std;

int main() 
{
	string line;
	cout << "Zadajte nazov suboro: ";
	char nazovSuboru[50];
	ifstream subor1;
	cin.getline (nazovSuboru, 50);
	subor1.open(nazovSuboru);
	if (subor1.is_open())
	{
		string text;    
		while ( subor1.good() )
		{
			text = "";
			getline (subor1, line);
			
			text = line;
			
			int i = line.length();

			for(int x = 0; x <=i - 1;  x++)
			{
				cout << text[x];
				if(x>0 && x%30==0)
				{
					cout << endl;
				}
			}
		}
		subor1.close();
  }

  else cout << "Subor neexistuje!\n"; 

  return 0;
}
c-ice
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 475
Registrovaný: 04 mar 2008, 15:18
Kontaktovať používateľa:

Re: Formatovanie textoveho suboru (c++)

Príspevok od používateľa c-ice »

Kód: Vybrať všetko

string strBuff = ""; // vid nizsie
for(int x = 0; x < i;  x++) // naco davas <= a odpocitavas od toho cisla ked ti to staci takto riesit
         {
            //cout << text[x]; // toto rieš cez "buffer"
            if(text[x] != " ") {
                strBuff += text[x];
            } 
            else 
            {
                cout << strBuff << text[x];
                strBuff = "";
            }
            if(x>0 && x%30==1) // zacinas od nuly !! ked das modulo 30 tak ty uz budes mat 31 znakov napisanych preto == 1
               cout << endl;
         }
cout << strBuff;
Napísať odpoveď