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

Tworzenie pliku przez program

Ostatnio zmodyfikowano 2009-01-05 17:16
Autor Wiadomość
Jaszczomb
Temat założony przez niniejszego użytkownika
Tworzenie pliku przez program
» 2009-01-04 18:10:25
Witam
 Przed chwilą skończyłem pisać program, który wykorzystując tablice wypisuje liczby i wkleja je do pliku. Jednak aby program zadziała użytkownik uprzednio musi stworzyć plik liczby.txt aby tam program wynik wpisał.
 Tu pojawia się moje pytanie. Czy jest możliwość, aby program sam stworzył plik "liczby.txt" aby następnie ten plik uzupełnić?
Z góry dziękuję za pomoc i pozdrawiam.
P-3363
lynx
» 2009-01-04 18:24:46
Zależy czy użyłeś cstdio czy fstream. W fstream nie znam takiej funkcji.
W cstdio wpisując:
C/C++
FILE * plik;
plik = fopen( "tekst.txt", "w+" );
program sam utworzy Ci plik. :)
P-3366
DejaVu
» 2009-01-04 18:28:16
Możesz napisać sobie taką funkcję:
C/C++
bool CreateIfNotExists( const char * sFileName )
{
    ifstream otworzPlik;
    otworzPlik.open( sFileName );
    if( otworzPlik.good() )
    {
        otworzPlik.close();
        return true; //plik istnieje
    }
    ofstream nowyPlik;
    nowyPlik.open( sFileName );
    if( nowyPlik.good() )
    {
        nowyPlik.close();
        return true; //udało się utworzyć plik
    }
    return false; //nie da się utworzyć pliku i plik nie istnieje
}
Przed otwarciem pliku wywołaj tą funkcję i jeśli zwróci ona wartość true będziesz wiedział, że plik istnieje (został utworzony pusty lub istniał wcześniej na dysku).
P-3367
DeBugger
» 2009-01-04 18:29:46
Poczytaj o cstdio.
P-3368
Jaszczomb
Temat założony przez niniejszego użytkownika
» 2009-01-04 19:22:54
Użyłem biblioteki fstream.
Program wygląda tak:
C/C++
#include <iostream>
#include <fstream>
#include <conio.h>
#include "console.ddt"
#include <windows.h>
using namespace std;
using namespace ddt::console;
int main()
{
    unsigned int a, wybor, b;
    int liczba[ a ];
    fstream plik( "liczby.txt", ios::out );
    if( plik.good() )
    do
    {
        SetConsoleTitle( "Program Jaszczomba" );
        cout << "Witaj" << endl;
        cout << "Program wypisuje liczby z zakresu wybranego przez uzytkownika " << endl;
        cout << "i zapisuje je do pliku liczby.txt." << endl;
        cout << "Pamietaj, zeby stworzyc pusty dokument tekstowy " << endl;
        cout << "w folderze z Tym programem." << endl;
        cout << " " << endl;
        cout << "Od ktorej liczby wypisywac?" << endl;
        cin >> b;
        cout << "Do ktorej liczby wypisywac?" << endl;
        cin >> a;
        plik << b;
        plik << " ";
        if( a << b )
        {
            for( int i = b; i < a; i++ )
            {
                cout <<( i + 1 ) << endl;
                plik <<( i + 1 );
                plik << " ";
                plik.flush();
            }
        } else cout << "Blad! Pierwsza z podanych liczb musi byc mniejsza od drogiej!" << endl;
       
        plik.close();
        cout << "Powtorzyc wypisywanie?" << endl;
        cout << "[1]=tak [2]=nie" << endl;
        cin >> wybor;
        clrscr();
    }
    while( wybor <= 1 );
   
    SetConsoleTitle( "Program Jaszczomba" );
    cout << " " << endl;
    cout << "                              Do widzenia" << endl;
    getch();
    return( 0 );
}
Proszę, Piotrze podaj mi właściwy kod, z wplecioną twoją funkcją. Mi wyskakują błędy.
P-3378
pekfos
» 2009-01-04 19:47:44
tworzenie nowego pliku w fstream jest proste:
C/C++
fstream plik;
plik.open( "plik.txt", std::ios::out );
odrazu masz plik otwarty do zapisu a jak go niema to utworzy nowy:)
P-3380
Jaszczomb
Temat założony przez niniejszego użytkownika
» 2009-01-04 20:14:40
Faktycznie :P kierowałem się poradnikiem i dlatego od razu stworzyłem plik do zapisu w nim danych. Wielkie dzięki do wszystkich za pomoc.
P-3384
lynx
» 2009-01-05 17:16:57
Problem rozwiązany więc temat zamykam. ;)
P-3424
« 1 »
  Strona 1 z 1