C++, projekt z plików

0

Dzień dobry, zgłaszam się w sumie z drobnym problemem. Mam do napisania projekt pracujący na plikach (liczenie słów w zdaniu, naprawianie błędów i zmiana liter z dużych na małe). Na razie wszystko robiłam na switch case'ach i było okej, ale teraz gdy zaczęłam kończyć program muszę poprawić na to, tak jak chce profesor czyli według tej formułki-
**Użytkownik komunikuje się z programem za pomocą poleceń wprowadzanych ze standardowego wejścia o następującej składni:
Polecenie:funkcja (nazwa_pliku.txt) **
I szczerze mówiąc, głównie z tym mam problem. Próbowałam na if'ach czyli

if(polecenie=Error:spacje(ala.txt))
{ 
spacje ();
} 

Spacje to funkcja usuwająca nadmiar spacji, a polecenie to właśnie według tej formułki czynność którą ktoś wpisał w cina.
Podpowie ktoś jak to rozwiązać lub wytłumaczy? :)

1
string funkcja,nazwapliku;
con>>funkcja>>nazwapliku;
if(funkcja=="spacje") spacje(nazwapliku);
0

Dziękuję bardzo. A i jeszcze mam z jedną rzeczą problem (tak na prawdę mam ich więcej ale ten głównie mnie męczy), nadal mówiąc o plikach- w poleceniu mam, że na przykład jeśli mam zamienić litery wszystkie na małe, to nie ma się stworzyć nowy plik tylko " Wynik działania programu jest zapisywany w tym samym pliku. ". No i próbowałam w ten sposób

ifstream ifs;
		ofstream ofs;
		char c;
		char plik[80];
		cout << "Podaj nazwe pliku : ";
		cin >> plik;

	    ifs.open(plik, ios::in ); // otwarcie pliku WEjściowego
		if (!ifs) 
		{
			cerr << "Nieudane otwarcie pliku " << plik;
			system("pause");
	
		}
		
		ofs.open(plik, ios::out);
		if (!ofs)
		{
			cerr << "Nieudane otwarcie pliku " << plik;
			system("pause");
			
		}

	    
	    while(ifs.get(c)) 
	    ofs.put(tolower(c));
	    
	    cout << "Litery zostaly zamienione na male, sprawdz w pliku" << endl;
	    ifs.close();
	    ofs.close(); 

lecz wtedy zdania z pliku znikają zamiast zmienić się na przykład na małe. Co w tym jest nie tak?

1

ofs.open(plik, ios::out); - można powiedzieć że zaczyna od kasowania pliku.
Musisz zapisać do innego pliku, potem skasować i przemianować.

0

Ale jak, skasować ten pierwszy i przemianować utworzony plik na nazwę pierwotnego? :o
W jaki sposób?

1

unlink
rename

1 użytkowników online, w tym zalogowanych: 0, gości: 1