Forum: Använda string till namn på fil

Forum huvudsida -> Programmering -> Använda string till namn på fil

Sidor: 1

Till botten

Kerp 22:12 - 23:e Augusti 2009 | Post #1
Medlem
Inlägg: 2


Skicka PM
Hej igen!


Här är jag med en fråga som säkert är så uppenbar att jag missat den fullständigt!

Det jag undrar är.

Kan man använda en string variabel för att låta användaren välja namn på filen?
Det har inte funkat för mig utan jag har istället använt char.

Men nu är det så att jag skulle behöva skicka denna variabeln till en annan funktion och det funkar inte för mig eftersom jag förmodligen gör fel någonstans.

Så jag undrar också hur man skickar en char variabel från en funktion till en annan eftersom det "vanliga" sättet (alltså det sätt som jag till exempel kan skicka en string eller int variabel) inte funkar för mig.

<edit>
Jag har också läst lite på en del forum att man kan konvertera string till char men jag har inte hittat någonstans där det finns förklarat på ett bra sätt.
Men så långt har jag fattat att det har något att göra med strcpy, men inte så mycket mer än det.

Om det inte är väldigt komplicerat skulle det vara bra om någon kunde upplysa mig på det området

Tack igen
</edit>

Om det är dåligt förklarat så säg till!

Tacksam för svar,
Kerp



Senast redigerad 22:16 - 23:e Augusti 2009


Vitdom 07:53 - 24:e Augusti 2009 | Post #2
Medlem
Inlägg: 71


Skicka PM
Ja, då ofstream::open( http://www.cplusplus.com/reference/iostream/ofstream/open/ ) behöver en pekare till en charvektor så går det inte att använda string-klassen. Men om du verkligen vill använda string-klassen går det, bara du kommer ihåg att använda string::c_str( http://www.cplusplus.com/reference/string/string/c_str/ ) som returnerar en pekare till charvektor som innehåller de tecken som finns i string-klassen, när du anropar ofstream::open.

  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. void makeFile(char *filename);
  7.  
  8. void makeFile(char *filename)
  9. {
  10. ofstream outFile;
  11.  
  12. outFile.open(filename);
  13. if(outFile.is_open())
  14. {
  15. outFile << "This file is named " << filename << "... ";
  16. outFile.close();
  17. }
  18. else
  19. {
  20. cerr << "COULD NOT CREATE FILE: " << filename << "! ";
  21. }
  22. }
  23. int main()
  24. {
  25. const int MAX_CHARS_FILENAME = 64;
  26. char filename[MAX_CHARS_FILENAME];
  27.  
  28. cout << "Enter filename: ";
  29. cin.getline(filename, MAX_CHARS_FILENAME);
  30.  
  31. makeFile(filename);
  32. }


-------------------------



Senast redigerad 08:05 - 24:e Augusti 2009


Kerp 17:57 - 24:e Augusti 2009 | Post #3
Medlem
Inlägg: 2


Skicka PM
Tack så jättemycket nu vet jag hur jag ska göra




NetNinja 09:40 - 1:a September 2009 | Post #4
Medlem
Inlägg: 116


Skicka PM
std::string temp = "filen.txt";
ofstream outFile(temp.c_str());

Tror det var det svaret du ville ha

-------------------------



Senast redigerad 09:41 - 1:a September 2009


Kerp 16:27 - 1:a September 2009 | Post #5
Medlem
Inlägg: 2


Skicka PM
    Citat av NetNinja:
std::string temp = "filen.txt";
ofstream outFile(temp.c_str());

Tror det var det svaret du ville ha


Ja det var det jag letade efter men har redan använt en pekare till en char som Vitdom föreslog men tack ändå, kan komma till användning nån gång.




Sidor: 1

Forum huvudsida -> Programmering -> Använda string till namn på fil
Atom feed

Du får inte posta i den här tråden | Till toppen