Tworzenie pliku przez program
Ostatnio zmodyfikowano 2009-01-05 17:16
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. |
|
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: FILE * plik; plik = fopen( "tekst.txt", "w+" );
program sam utworzy Ci plik. :) |
|
DejaVu |
» 2009-01-04 18:28:16 Możesz napisać sobie taką funkcję: bool CreateIfNotExists( const char * sFileName ) { ifstream otworzPlik; otworzPlik.open( sFileName ); if( otworzPlik.good() ) { otworzPlik.close(); return true; } ofstream nowyPlik; nowyPlik.open( sFileName ); if( nowyPlik.good() ) { nowyPlik.close(); return true; } return false; }
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). |
|
DeBugger |
» 2009-01-04 18:29:46 |
|
Jaszczomb Temat założony przez niniejszego użytkownika |
» 2009-01-04 19:22:54 Użyłem biblioteki fstream. Program wygląda tak: #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. |
|
pekfos |
» 2009-01-04 19:47:44 tworzenie nowego pliku w fstream jest proste: fstream plik; plik.open( "plik.txt", std::ios::out ); odrazu masz plik otwarty do zapisu a jak go niema to utworzy nowy:) |
|
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. |
|
lynx |
» 2009-01-05 17:16:57 Problem rozwiązany więc temat zamykam. ;) |
|
« 1 » |