从不同的字符串输出文件名

时间:2012-12-23 09:20:53

标签: c++ file text-files filepath

嗨,我对这段代码有点麻烦

#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'

获取其文件名

如果你能帮助我,我会很感激:)。

1 个答案:

答案 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*