-2

ユーザーが outputFileName を入力すると、プログラムがクラッシュします。 c1は char 配列、out文字列、およびlen長さ c1 の int です。

これが私のコードです:

    ofstream outFile;
    char outputFileName[256];
    cout << "Enter output file name: ";
    cin >> outputFileName;
    cout << endl;
    outFile.open(outputFileName,ios::trunc);
    for(int i=0; i<len-1; i++){ //-1 b/c added \n at the end.
        out[i] = c1[i];
    }
    outFile << out;
    outFile.close();
4

2 に答える 2

2

私はこのようなことをもっとしたいと思います:

{    
    std::cout << "Please enter output file name: ";

    std::string outputFileName;       
    std::getline(outputFileName, std::cin);

    std::ofstream outputFile(outputFileName.c_str());
    outputFile.write((static_cast<char *>(&c1), len);
} // file closes automatically when it goes out of scope.
于 2013-07-07T08:30:11.070 に答える
0

out を取り除き、c1 をファイルに直接書き込むように修正しました。

ofstream outFile;
char outputFileName[256];
cout << "Enter output file name: ";
cin >> outputFileName;
cout << endl; outFile.open(outputFileName,ios::trunc);
for(int i=0; i<len-1; i++){ //-1 b/c added \n at the end. 
    outFile = c1[i];
} 
outFile.close();
于 2013-07-07T22:27:00.780 に答える