C++ tworzenie nowego pliku txt

Awatar użytkownika
Przemekg
Użytkownik
Użytkownik
Posty: 15
Rejestracja: 27 mar 2008, o 19:48
Płeć: Mężczyzna
Lokalizacja: Kamienna Góra
Podziękował: 1 raz

C++ tworzenie nowego pliku txt

Post autor: Przemekg »

Program podczas działania ma pobierać nazwę pliku od użytkownika i stworzyć plik o tej nazwie.
Próbowałem z czymś takim:

Kod: Zaznacz cały

#include <fstream>
(...)
char nazwa;
cin>>nazwa;
fstream strumien_zapisu;
strumien_zapisu.open(nazwa,ios::out);
(...)
ale się nie kompiluje bo nazwa musi być stałą a nie zmienną. Jak wpisze strumien_zapisu.open("nazwa.txt",ios::out);
to jest ok, tylko że to użytkownik ma podać nazwę pliku a nie program
Najarany
Użytkownik
Użytkownik
Posty: 18
Rejestracja: 11 sty 2009, o 15:26
Płeć: Mężczyzna
Lokalizacja: pl.
Podziękował: 3 razy

C++ tworzenie nowego pliku txt

Post autor: Najarany »

A jakiś formularz byś tam wrzucił? Ja się na cpp nie znam, ale w php zrobiłbym to na zasadzie: parę ifów, definiujących zawartość formularza + formularz i ten twój cały strumien_zapisu.
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

C++ tworzenie nowego pliku txt

Post autor: matshadow »

zmień na tablicę znaków, np. char nazwa[256];
Awatar użytkownika
wafello
Użytkownik
Użytkownik
Posty: 35
Rejestracja: 7 sty 2009, o 21:50
Płeć: Mężczyzna
Lokalizacja: Józefina
Pomógł: 6 razy

C++ tworzenie nowego pliku txt

Post autor: wafello »

kod z pierwszej strony google - następnym razem najpierw poszukaj...

Kod: Zaznacz cały

/***********************************************************
* FILE NAME: readfile.cpp *
* AUTHOR: Zhiwei Wang *
* DATE: May. 1997 *
* DESCRIPTION: An example for simple disk file I/O *
************************************************************/
#include <iostream>
#include <fstream>
#include <string.h>

using namespace std;

main(){
  ifstream in;
  char filename[20];
  cout << "Enter the file name to read from: ";
  cin >> filename;
  in.open(filename);
  if (!in) {
    cout << "Input file cannot be opened.
";
    return(1);
  }
  char str[80];
  while (!in.eof()) {
    in >> str;
    cout << str << " ";
    strcpy(str, "");
  }
  cout << "
";
  in.close();
  return (0);
}

//END OF PROGRAM
//************************************************************/
spajder
Użytkownik
Użytkownik
Posty: 735
Rejestracja: 7 lis 2005, o 23:56
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 2 razy
Pomógł: 133 razy

C++ tworzenie nowego pliku txt

Post autor: spajder »

do Twojego problemu: parametr nie musi być stałą. const w tej deklaracji oznacza, że funkcja traktuje go jako stałą, tzn. nie może wewnątrz niej ten parametr być zmieniany. Dzięki temu długi napis możemy przekazać przez referencję (i wywołanie funkcji będzie szybsze) i nie musimy się martwić, że funkcja nam coś w nim namiesza.

a Twój problem: funkcja open przyjmuje jako pierwszy parametr coś typu char[] czyli tablicę znaków a Ty dałeś char, czyli jeden znak. Zmień deklarację np. na char[20] i powinno być git

[edit]
nie mogę się na tym nowym forum połapać... nie zauważyłem poprzednich postów
ODPOWIEDZ