Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Jak to poukładać?

Ostatnio zmodyfikowano 2009-04-05 18:34
Autor Wiadomość
mirko2413
Temat założony przez niniejszego użytkownika
Jak to poukładać?
» 2009-04-05 02:03:26
Witam ponownie!mam teraz taki problem; czy do tego kodu na obliczanie pola:
C/C++
#include <cstdlib>
#include <math.h>
#include <iostream>
#include <cstdio>

using namespace std;

double liczenie( double a, double h )
{
    double pol_pow;
    pol_pow = 0.5 * a + 0.5 * h;
    return pol_pow;
}
void wczytywanie()
{
    int a, h;
    double wynik;
    cout << "Wprowadz dlugosc boku (a):";
    cin >> a;
    cout << "Wprowadz wysokosc (h)";
    cin >> h;
    wynik = liczenie( a, h );
    cout << "Pole Powierzchni:" << wynik << "\n";
}

int main()
{
    wczytywanie();
   
    system( "pause" );
    return 0;
   
}
mam wkleić ten ciąg który dostałem:
C/C++
#include <fstream>
//...

//zapis:
fstream zapisz;
zapisz.open( "nazwa_pliku.txt", ios::out );

zapisz << "tekst..." << liczba;

zapisz.close();

//odczyt:
fstream odczyt;
odczyt.open( "nazwa_pliku.txt", ios::in );
if( odczyt.good() )
{
    string wiersz;
    while( getline( odczyt, wiersz ) )
    {
        cout << wiersz << endl;
    } //while
    odczyt.close();
} //if
czy też każda opcja zapisu,odczytu ma swoje dokładne miejsce aby to wszystko działało jak trzeba?
P-5307
DejaVu
» 2009-04-05 02:12:54
Musisz pomyśleć jak to dodać do własnego programu. Dostałeś przykład jak prosto zapisać / odczytać dane z pliku. Przeczytaj lekcję http://kursy.ddt.pl/?LessonId=110 jeśli nie rozumiesz kodu, który otrzymałeś odnośnie obsługi plików.
P-5308
mirko2413
Temat założony przez niniejszego użytkownika
:-/
» 2009-04-05 02:18:53
Okey, no dobra.Udało mi się wkleić dobrze opcję zapisu, tylko czemu otrzymałem coś takiego w pliku tekstowym???

Pole trojkata4.22507e+277
P-5309
mirko2413
Temat założony przez niniejszego użytkownika
» 2009-04-05 09:05:32
Po wielu mękach i cierpieniach poukładałem to wszystko w całość i wygląda to tak:
C/C++
#include <cstdlib>
#include <math.h>
#include <iostream>
#include <cstdio>
#include <fstream>

using namespace std;



double liczenie( double a, double h )
{
    double pol_pow;
    pol_pow = 0.5 * a + 0.5 * h;
    return pol_pow;
}
void wczytywanie()
{
    int a, h;
    double liczba, wynik;
    cout << "Wprowadz dlugosc boku (a):";
    cin >> a;
    cout << "Wprowadz wysokosc (h)";
    cin >> h;
    wynik = liczenie( a, h );
    cout << "Pole Powierzchni:" << wynik << "\n";
    //zapis:
    fstream zapisz;
    zapisz.open( "Pole_trojkata.txt", ios::out );
   
    zapisz << "Pole trojkata" << liczba;
   
    zapisz.close();
   
    //odczyt:
    fstream odczyt;
    odczyt.open( "Pole_trojkata.txt", ios::in );
    if( odczyt.good() )
    {
        string liczba;
        while( getline( odczyt, liczba ) )
        {
           
            cout << wynik << endl;
        } //while
        odczyt.close();
    } //if
}

int main()
{
    wczytywanie();
   
    system( "pause" );
    return 0;
   
}

niby wszystko jest dobrze ale nie podoba mi się format odczytu z pliku który wygląda tak:

Wprowadz dlugosc boku (a):2
Wprowadz wysokosc (h)3
Pole Powierzchni:2.5
2.5
Aby kontynuować, naciśnij dowolny klawisz...

Czemu jest tylko sama liczba 2.5 a nie ma jakiegoś opisu co to jest?
Pomocy!
P-5311
lynx
» 2009-04-05 11:28:08
Z bardzo prostego powodu tak się dzieje.
Zapisujesz dane do pliku, odczytujesz lecz później wyświetlasz zmienną wynik która jest Ci już znana wcześniej. (czyli nie to co wczytałeś z pliku)

Popraw to:
C/C++
while( getline( odczyt, liczba ) )
{
   
    cout << wynik << endl;
} //while
na to:
C/C++
while( !odczyt.eof() ) //powtarzaj do końca pliku (metoda eof mówi nam czy dotarliśmy do końca pliku)
{
    getline( odczyt, liczba );
    cout << liczba << endl;
}

Teraz powinno działać tak jak chcesz. :)
P-5314
mirko2413
Temat założony przez niniejszego użytkownika
» 2009-04-05 18:34:40
Dzięki za info,zaraz tą opcję wypróbuję. Chcę tylko powiedzieć, że znalazłem inny sposób:
C/C++
//zapis:
fstream zapisz;
zapisz.open( "Pole_trojkata.txt", ios::out );

zapisz << "Odczyt pliku tekstowego to: " << wynik;

zapisz.close();

//odczyt:
fstream odczyt;
odczyt.open( "Pole_trojkata.txt", ios::in );
if( odczyt.good() )
{
    string liczba;
    while( getline( odczyt, liczba ) )
    {
       
        cout << liczba << endl;

Serdecznie pozdrawiam wszystkie osoby które ofiarowały mi pomoc, mam nadzieję iż w przyszłości również zostanę potraktowany "wyrozumiale" przez bardziej zaawansowanych forumowiczów ;-)
P-5331
« 1 »
  Strona 1 z 1