2013-07-23 4 views
0

Я хочу иметь возможность добавлять константную строку в конец другой строки в форме char *, а затем использовать полученную строку в качестве аргумента для open(). Вот как это выглядит:Объединение статического символа char * и константы string

file1.cpp

#include "string.h" 

file2 foo; 

char* word = "some"; 
foo.firstWord = word; //I want the file2 class to be able to see "some" 

file2.h

#include <fstream> 
#include <iostream> 

#define SECONDWORD "file.txt" 

class file2{ 
public: 
    file2(); 
    static char* firstWord; 
    static char* fullWord; 

private: 
    ofstream stream; 

} 

file2.cpp

#include "file2.h" 

char* file2::firstWord; 
char* file2::fullWord; 

fullWord = firstWord + SECONDWORD; //so fullWord is now "somefile.txt" ,I know this doesn't work, but basically I am trying to figure out this part 

file2::file2(){ 
    stream.open(fullWord); 
} 

Так что я не очень хорошо разбирается в C++, поэтому любая помощь будет оценена!

ответ

1

Решение на языке C++ может быть следующим.

#include <string> 

char* a = "file"; 
char* b = ".txt"; 

... 

stream.open((std::string(a) + b).c_str()); 

Что здесь происходит? Сначала std::string(a) создает временный объект std::string. В него добавляется значение b. Наконец, метод c_str() возвращает строку c-style, содержащую a + b.

Смежные вопросы