» »

vhodno izhodne tekstovne datoteke...

vhodno izhodne tekstovne datoteke...

freserovski ::

A mogoče kdo ve, kako bi naredil, da bi mi pred vsako besedo prebrano iz datoteke zapisalo njeno dolžino?
C++

lp
Problemi so, problemi bodo! Kurc jih gleda!!

user4683 ::

Ne razumem čisto... lahko bolj natančno, kako so tvoje besede zapisane (saj ne, da bi bilo pomembno... samo tako, za predstavo).

ce ias recimo datoteko v obliki tegale sporocila, ki ga ravnokar pisem, bi za besedo smatral pac vse od enega presledka, do drugega (ter se locila). Torej moras najprej loadat datoteko, ter napisat tokenizer, ki bo vse skupaj razdelil na besede ... od presledka, do presledka, vmes pa stejes dolzino besede, v bajtih. To ni tezko, saj se premikas po en bajt...

torej, zacnes brati datoteko, stevec z dolzino resetiras na 0, nato se premaknes za bajt, povecas stevec, preveris ce je presledek. Ce je, je prve besede konec. Na izhod zapises pac tisti stevec, ter tvojo besedo (upajmo, da si si jo spotoma shranil v nek buffer... znak za znakom). Itd., itd...

rasta ::

Recimo na tako na hitro spisano kar v browserju (netestirano):
std::ifstream fajl("fajl.txt");
unsigned int count = 0;
std::string beseda = '';
while(fajl.good()) {
switch(fajl.peek()){
case ' ':
case '\t':
case '\n':
case '\r':
std::cout << count << " - " << beseda << std::endl;
count = 0;
beseda = '';
fajl.get();
break;
default:
count++;
beseda += fajl.get();
}
}

freserovski ::

jp, pač neko textovno datoteko naložiš, pol pa shraniš v drugo text datoteko, tako, da je pred vsako besedo napisana njena dolžina, za besedo se smatrajo črke, torej brez ločil in presledkov.
Sem delal nekaj, ampak mi ni uspelo tiste dolžine spravit pred besedo, vedno je blo za...
Problemi so, problemi bodo! Kurc jih gleda!!

freserovski ::

#include < fstream.h >



void main(){
	ifstream vhodna("krneki.txt");
	ofstream izhodna("izhod.txt");

	char znak;
	char beseda[15];
	int stevilo=0;
	int i=0;

	while (!vhodna.eof())
	{
		vhodna.get(znak);
		
		while(znak!=' '&&znak!='.'&&znak!=','&&znak!='?'&&znak!='!'&&znak!=':'&&znak!='\n'){
			if(vhodna.eof())break;
			beseda[i]=znak;
			vhodna.get(znak);
			stevilo++;
			i++;

		}
		if(stevilo>0){
			izhodna < < "(" < < stevilo < < ")";
			i=0;
			while(i < stevilo){
			izhodna < < beseda[i];
			i++;
			}
		}
		if(!vhodna.eof()){
		izhodna < < znak;
		stevilo=0;
		i=0;
		}






	}


	
	vhodna.close();
	izhodna.close();

}


evo, tako sem to naredil, mogoce bo pa kdo rabo se kdaj ..., hvala za zgornje namige:D
Problemi so, problemi bodo! Kurc jih gleda!!

Zgodovina sprememb…

  • spremenil: darh ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

branje iz datoteke c#

Oddelek: Programiranje
141561 (1290) darkolord
»

[C++] - Tolmačenje povedi in izvedba operacij nad števkami

Oddelek: Programiranje
353187 (2423) jernejl
»

[C++][Naloga] Tekstovne datoteke, realna števila

Oddelek: Programiranje
253870 (3486) Gundolf
»

[C++][Naloga_polja]MIN in MAX polja, izpis za x.100 stevil

Oddelek: Programiranje
222823 (2634) snow
»

C++ in datoteke

Oddelek: Programiranje
71126 (1042) Gundolf

Več podobnih tem