嗨,我对这段代码有点麻烦
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string line;
//const char* test = "connect";
#define test "connect"
string con("c:\\filepath\\%s.txt", test);
ifstream file;
file.open(con.c_str());
if (file.is_open()) {
while (file.good()) {
getline(file, line);
printf("setc %s\n", line.c_str());
//cout << "setc " << line << endl;
}
file.close();
} else
cout << "Unable to open file";
return 0;
}
有人可以告诉我我的错误吗
这就是我追求的目标
'con'用于从'test'
获取其文件名如果你能帮助我,我会很感激:)。
答案 0 :(得分:3)
有很多方法可以做到这一点。这是两个:
std::string con1("c:\\filepath\\" test ".txt");
std::string con2("c:\\filepath\\" + std::string(test) + ".txt");
con1
的初始化要求test
通过宏扩展成为字符串文字,因为它依赖于字符串文字的合并。第二种形式更为通用,test
可以是任何可以转换为std::string
的形式,例如char const*
。