Setprecision w pliku tekstowym
Ostatnio zmodyfikowano 2015-12-23 22:34
cichy3993 Temat założony przez niniejszego użytkownika |
Setprecision w pliku tekstowym » 2015-12-23 21:34:58 Witam,
Pisałem sobie ostatnio kalkulator i postanowiłem do niego dodać funkcję, która zapisuje ostatnio otrzymany wynik i wyświetla go, problem tkwi w tym, że kalkulator ma też funkcję potęgowania, a jak to z potęgowaniem bywa, liczby czasami wychodzą horrendalnie duże... Do pokazania całej liczby używam "cout << setprecision()", tylko że to działa wyłącznie w programie... program wyświetla całą liczbę, ale do pliku tekstowego trafia, np.: "8.74069e+024", a kiedy program pobiera zawartość pliku tekstowego to pokazuje tylko znaki przed kropką, w tym przypadku "8". Czy jest jakieś polecenie/funkcja, które/a powoduje spisanie całej liczby do notatnika, a nie tylko skróconego zapisu?
|
|
carlosmay |
» 2015-12-23 21:46:30 Robisz tak samo jak dla cout . int main() { double d = 10 / 3.0; ofstream fout( "testowy.txt" ); fout << setprecision( 4 ) << d << endl; fout.close(); return 0; }
|
|
cichy3993 Temat założony przez niniejszego użytkownika |
» 2015-12-23 22:04:53 void zapis() { cout << setprecision( 10000 ); long double wynik; fstream plik; plik.open( "zapis.txt", ios::out ); plik << wynik << endl; plik.clear(); plik.close(); }
void wczyt() { cout << setprecision( 10000 ); long double wynik; fstream plik; plik.open( "zapis.txt", ios::in ); if( plik.good() == false ) { exit( 0 ); } int nr_linii = 1; string linia; while( getline( plik, linia ) ) { switch( nr_linii ) { case 1: wynik = atoi( linia.c_str() ); break; } nr_linii++; } plik.close(); cout << "Poprzedni wynik: " << wynik << endl; cout << endl; }
Tak wyglądają funkcje wczytu i zapisu, nie bardzo rozumiem gdzie mam umieścić twój kod i jak go zmodyfikować. |
|
carlosmay |
» 2015-12-23 22:34:44 Jak w przykładzie plik << fixed << setprecision( 10 ) << wynik << endl; Obsługa strumienia |
|
« 1 » |