tututuzxcv 2017-09-12 13:57 采纳率: 50%
浏览 532

要使用选择的文件夹路径,这程序问题在哪

//DISPLAY 6.2 File I/O with Checks on open
//Reads three numbers from the file infile.dat, sums the numbers,
//and writes the sum to the file outfile.dat.
#include
#include
#include
#include
#include
#include
#include
#define NO_WIN32_LEAN_AND_MEAN
#include

using namespace std;
CString GetSavePath();
int main()
{
GetSavePath();
CString x;
x = GetSavePath();
cout << x << endl;
ifstream in_stream;
ofstream out_stream;

in_stream.open("x//.txt");
if (in_stream.fail())
{
    cout << "Input file opening failed.\n";
    exit(1);
}

out_stream.open("x//.txt", ios::app);
if (out_stream.fail())
{
    cout << "Output file opening failed.\n";
    exit(1);
}

int first, second, third;
in_stream >> first >> second >> third;
out_stream << "The sum of the first 3\n"
    << "numbers in infile.dat\n"
    << "is " << (first + second + third)
    << endl;

in_stream.close();
out_stream.close();

return 0;

}

CString GetSavePath()
{

CString strpath;

TCHAR Buffer[MAX_PATH];
BROWSEINFO bi;
ZeroMemory(&bi, sizeof(BROWSEINFO));
bi.hwndOwner = NULL;
bi.ulFlags = BIF_RETURNONLYFSDIRS;    //要求返回文件系统的目  

bi.ulFlags = BIF_NEWDIALOGSTYLE;        //窗口可以调整大小,有新建文件夹按钮  

bi.pszDisplayName = Buffer;           //此参数如为NULL则不能显示对话框   
bi.lpszTitle = _T("请选择文件夹");
bi.lpfn = NULL;


LPITEMIDLIST pIDList = SHBrowseForFolder(&bi);//调用显示选择对话框  
if (pIDList)
{
    SHGetPathFromIDList(pIDList, Buffer);
    //取得文件夹路径到Buffer里  

    strpath.Format(_T("%s"), Buffer);
}
else
{
    strpath = _T("");  // 用户点了取消  
}

LPMALLOC lpMalloc;
if (FAILED(SHGetMalloc(&lpMalloc)))
    strpath = _T("");


//释放内存  
lpMalloc->Free(pIDList);
lpMalloc->Release();

return strpath;

}

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题
    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!
    • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?