1

こんにちは私はこのコードで少し問題があります

#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」からファイル名を取得するためのものです。

あなたが私を助けることができれば私はそれをいただければ幸いです:)

4

1 に答える 1

3

これを行うには多くの方法があります。ここに2つあります:

std::string con1("c:\\filepath\\" test ".txt");
std::string con2("c:\\filepath\\" + std::string(test) + ".txt");

の初期化では、文字列リテラルのマージに依存しているため、マクロ展開によって文字列リテラルになるcon1必要があります。test2番目の形式はより一般的であり、たとえば、にtest変換できるものであれば何でもかまいません。std::stringchar const*

于 2012-12-23T09:28:51.387 に答える