[C++/UNIX] Obsługa plików, nadpisywanie linii w pliku tekstowym.
Ostatnio zmodyfikowano 2015-01-13 20:37
GigaByte23 Temat założony przez niniejszego użytkownika |
[C++/UNIX] Obsługa plików, nadpisywanie linii w pliku tekstowym. » 2015-01-13 20:10:17 Witam Szanownych Forumowiczów! Zajmuję się projektem który obsługuje Pliki tekstowe. Otóż. Sprawa wygląda następująco: Program który piszę powinien pracować na pliku tekstowym 'bezpośrednio'. Została mi sprawa nadpisywania linii w pliku tekstowym, Słowem: Zawartośc pliku tekstowego przed edycją: 1. abcd efg hijk 2. lmno prs tuw 3. xyza bcd efg Użytkownik wybiera którą linię chce nadpisać, załóżmy że 2 - 'lmno prs tuw' oraz wprowadza nowe dane do stringa lub tablicy typu char np: 'qwer tyu iop' , i nadpisuje linię tymi danymi: Zawartość pliku tekstowego po edycji: 1. abcd efg hijk 2. qwer tyu iop 3. xyza bcd efg Bazując na kodzie użytkownika ISON, który służy do usuwania wybranej linii, Czy uda się w podobny sposób (podobnym kodem) zamiast usunąć, nadpisać linię?: #include <fstream> #include <string> #include <vector>
void kasuj_wiersz( const std::string sciezka, const size_t wiersz ) { std::vector < std::string > vec; std::ifstream in( sciezka.c_str() ); std::string tmp; while( getline( in, tmp ) ) vec.push_back( tmp ); in.close(); std::ofstream out( sciezka.c_str() ); for( size_t i = 0; i < vec.size(); ++i ) { if( i + 1 != wiersz ) out << vec[ i ] << std::endl; } out.close(); }
int main() { kasuj_wiersz( "aaa.txt", 2 ); }
Za wszelkie odpowiedzi dziękuję! |
|
stryku |
» 2015-01-13 20:27:56 Jasne #include <fstream> #include <string> #include <vector>
void zamien_wiersz( const std::string sciezka, const std::string nowaLinia, const size_t wiersz ) { std::vector < std::string > vec; std::ifstream in( sciezka.c_str() ); std::string tmp; while( getline( in, tmp ) ) vec.push_back( tmp ); in.close(); std::ofstream out( sciezka.c_str() ); for( size_t i = 0; i < vec.size(); ++i ) { if( i + 1 != wiersz ) out << vec[ i ] << std::endl; else out << nowaLinia << std::endl; } out.close(); }
int main() { zamien_wiersz( "aaa.txt", 2, "siema" ); }
|
|
GigaByte23 Temat założony przez niniejszego użytkownika |
Dziękuję :) » 2015-01-13 20:37:42 Dziękuję! Jesteś Wielki, działa :) |
|
« 1 » |