Czyszczenie pliku
Ostatnio zmodyfikowano 2014-12-01 20:16
fornakter Temat założony przez niniejszego użytkownika |
Czyszczenie pliku » 2014-11-25 12:23:26 Witam. Używam MS VS C++ 2013 Uczę się obsługi plików, ale nie działa mi czyszczenie pliku. #include "stdafx.h" #include "iostream" #include "conio.h" #include "fstream" #include "string"
using namespace std;
int main( int argc, _TCHAR * argv[] ) { ifstream plik; string txt; plik.open( "C:/plik.txt" ); if( plik.good() ) { cout << "ok" << endl; while( getline( plik, txt ) ) cout << txt << endl; } else { cout << "Lipa!"; } plik.close(); _getch(); }
jak dodaję do otwieranego pliku ios::trunc plik.open( "C:/plik.txt", ios::trunc ); podczas kompilacji nie wyskakują żadne błędy (succees) ale nie otwiera pliku (dostaję jedynie napis "Lipa!") Kombinowałem, ale moje możliwości amatora się skończyły :) Chodzi mi o to, żeby za każdym razem czyścić plik i wpisywać nową wartość do niego. Z góry dzięki za pomoc. |
|
colorgreen19 |
» 2014-11-25 12:42:12 zamien ifstream na ofstream i wtedy dopisz ios::trunc |
|
fornakter Temat założony przez niniejszego użytkownika |
» 2014-11-25 12:47:28 Sprawdziłem, wyskoczył błąd z "getline" W oczekiwaniu na odpowiedź sam wygrałem walkę;) Dodałem do plik.open( "C:/plik.txt", ios::in | ios::out | ios::trunc );
zostawiając ifstream. Działa. Może to i nawet lepiej z tymi dodatkowymi parametrami, więcej możliwości. Dzięki za pomoc :) Edit: Teraz mam problem z zapisaniem tekstu do pliku. Błąd: error C2676: binary '<<' : 'std::ifstream' does not define this operator or a conversion to a type acceptable to the predefined operator wklejam tylko kawałek kodu, o który mi chodzi else { cout << "Lipa!"; } napis = "567671"; plik << napis;
|
|
1aam2am1 |
» 2014-11-25 15:03:19 zamień ifstream lub ofstream na std::fstream |
|
fornakter Temat założony przez niniejszego użytkownika |
» 2014-11-25 15:40:56 Zero błędów podczas kompilacji ale nie wstawia tekstu w plik. |
|
1aam2am1 |
» 2014-11-25 15:44:02 Otwierasz w trybie do zapisu? Bo jeżeli tak to spróbuj bez żadnych if-ów. |
|
fornakter Temat założony przez niniejszego użytkownika |
» 2014-11-25 15:51:35 Zadziałało int main( int argc, _TCHAR * argv[] ) { fstream plik; string txt, napis; plik.open( "C:/plik.txt", ios::in | ios::out | ios::trunc ); napis = "Test!"; cout << napis; plik << napis; plik.close(); _getch(); }
Tylko jak teraz mogę rozwiązać problem braku pliku/złej nazwy/etc? |
|
1aam2am1 |
» 2014-11-25 15:54:03 int main( int argc, _TCHAR * argv[] ) { fstream plik; string txt, napis; plik.open( "C:/plik.txt", ios::in | ios::out | ios::trunc ); if( plik.is_open() ) { napis = "Test!"; cout << napis; plik << napis; } else { std::cout << "Przykro mi nie udalo sie"; } plik.close(); _getch(); }
|
|
« 1 » 2 |