21. november 2004 - 17:28
Der er
15 kommentarer og 1 løsning
læg to strenge sammen
char buffer[500]; cin.getline(buffer,500); ofstream ud(buffer ???? ".txt",ios::trunc); hvilket tegn skal der stå i stedet for ???? så de to strenge kommer til at hænge sammen?
Annonceindlæg fra DE-CIX
21. november 2004 - 17:33
#1
Hvis du er sikker på at der er plads nok i buffer: strcat(buffer, ".txt); ofstream ud(buffer,ios::trunc); Du kan bruge 500 - 4 i kaldet til getline for at sikre dig at der plads nok (ellers kan std::string anbefales).
21. november 2004 - 17:34
#2
Prøv: string buffer; getline(cin,buffer); ofstream ud(buffer + ".txt",ios::trunc);
21. november 2004 - 17:37
#3
bertelbrander det viker fint kom med et svar arne v din har jeg prøvet, pga det jeg har lært i java... men det virkede ikke
21. november 2004 - 17:46
#4
Arne's virker med en lille modifikation, ofstream's constructor skal have en (const ) char *: #include <iostream> #include <fstream> using namespace std; int main() { string buffer; getline(cin,buffer); ofstream ud((buffer + ".txt").c_str(),ios::trunc); } Jeg samler ikke på point.
21. november 2004 - 17:48
#5
ja sorry - jeg glemte .c_str() - den er selvfølgelig nødvendig
21. november 2004 - 17:51
#6
ok så må i jo dele pointne hvis i begge har hjulpet tak for hjælpen
21. november 2004 - 17:52
#7
Jeg synes ikke at det er logisk at den skal have en char *, for mig at se var det logiske at den brugte en "const std::string &", denne kan oprettes dynamisk ud fra en char * (f.ex "test.txt").
21. november 2004 - 17:56
#8
ofstream er jo ældre end string men de kune jo have lavet en constructor mere
21. november 2004 - 17:58
#9
hmm burde det her ikke virke?? ifstream ind((buffer + ".txt").c_str());
21. november 2004 - 18:51
#10
Jo. Men du forsøger vel ikke at læse og skrive på samme fil samtidigt ?
21. november 2004 - 18:52
#11
nope men jeg skal vide om der er en fil med det navn, før jeg laver den. jeg vil jo ikke overskrive noget
21. november 2004 - 18:56
#12
Prøv: struct stat sb; if(stat((buffer + ".txt").c_str(),&sb) == 0)) { // eksisterer } else { // eksisterer ikke } (kræver #include <sys/stat.h>)
21. november 2004 - 18:57
#13
Eller kan du jo appende med ios::app
21. november 2004 - 18:59
#14
når jo det havde jeg helt glemt gi et svar så kan du få dine points nu. ellers kan du først få dem om nogle uger
21. november 2004 - 19:09
#15
ok
21. november 2004 - 19:31
#16
sa sir jeg tak
Kurser inden for grundlæggende programmering