fstream i pewien problem
Ostatnio zmodyfikowano 2011-03-26 18:11
Stasiulski Temat założony przez niniejszego użytkownika |
fstream i pewien problem » 2011-03-26 12:47:29 Witam. Zamierzam zrobić program z użyciem fstreama, ale mi to nie wychodzi. Mianowicie piszę o tym, że najpierw deklaruję zmienną ( long data; ) i zamierzam nazwać tak plik ( tak jak nauczyła mnie nauczycielka ). A nauczyła mnie tak, że ofstream deklaracja ("nazwa pliku.txt"); . I tam gdzie jest nazwa pliku chcę nazwać to taką cyfrą jaką wprowadzono do zmiennej data. Innymi słowy:
#include <iostream> #include <conio.h> #include <fstream.h> using namespace std;
main() { cout << "Podaj date (DDMMRRRR): "; long data; cin >> data; ofstream dane( ".txt" ); }
Proszę pomóżcie bo potrzebuję pomocy a muszę to zrobić do za tydzień (sobota, 2 kwietnia) |
|
pekfos |
» 2011-03-26 12:54:27 #include <sstream>
ostringstream oss; oss << data << ".txt"; ofstream file( oss.str() ); [/code] |
|
Stasiulski Temat założony przez niniejszego użytkownika |
» 2011-03-26 13:04:01 mógłbyś mi wytłumaczyć do się dzieje "po kolei" w tych liniach programu co podałeś? i co te funkcje mają za ... funkcję ? :D |
|
Stasiulski Temat założony przez niniejszego użytkownika |
» 2011-03-26 13:08:36 To inaczej. Bo mi nie działa . Popraw moje błędy w tym zapisie jeśli możesz:
#include <iostream> #include <conio.h> #include <fstream.h> #include <sstream> using namespace std;
main() { cout << "DDMMRRRR: "; long data; cin >> data; ostringstream oss; oss << data << ".txt"; ofstream file( oss.str() ); cout << "Imie i nazwisko: "; string dane; cin >> dane; file << dane; cout << "Dziekujemy!"; system( "pause" ); }
|
|
WiecznyWem |
» 2011-03-26 13:12:57 Mógłbyś to zrobić też w taki sposób: -piszesz funkcje która zamienia liczbę na string. Podaję przykład, z 4programmers.net. std::string intToStr( int n ) { std::string tmp; if( n < 0 ) { tmp = "-"; n = - n; } if( n > 9 ) tmp += intToStr( n / 10 ); tmp += n % 10 + 48; return tmp; }; -tworzysz stringa który będzie przechowywał nazwę pliku std::string tmp = intToStr( data ) + ".txt";
-Potem przekazujesz go do zmiennej ofstream dane. Nie wiem czy to najlepszy sposób rozwiązania problemu, ale taki wpadł mi do głowy. ;) |
|
pekfos |
» 2011-03-26 14:08:34 #include <iostream> #include <fstream> #include <sstream> using namespace std;
int main() { cout << "DDMMRRRR: "; long data; cin >> data; ostringstream oss; oss << data << ".txt"; ofstream file( oss.str().c_str() ); cout << "Imie i nazwisko: "; string dane; cin >> dane; file << dane; cout << "Dziekujemy!"; } main musi coś zwracać nie używaj fstream.h ani iostream.h nie myl nazw zmiennych!! naucz się czytać logi! |
|
szyx_yankez |
» 2011-03-26 14:29:50
Musi, ale nie jest konieczne pisanie tego, gdyż standard przyjmuję, że w takim wypadku kompilator sam doda return 0; |
|
ison |
» 2011-03-26 16:40:09 @up jak już to 'przyjmuje' a nie 'przyjmuję' poza tym pekfosowi chodziło o zamiast a nie o |
|
« 1 » 2 |