1

我有一个简单的函数,它写入一个 .txt 文件。此方法在简单的 C++ 项目中完美运行。但是,当在 C++ SmartDeviceProject 中创建相同的函数时,不会向文件写入任何内容。

问题是什么?

代码示例如下。

STDMETHODIMP CHelloproxy::Hai(void)
{
    CTime t = CTime::GetCurrentTime();

    fstream file("D:\\k.txt", ios::app);

    file << t.GetHour() << ":" << t.GetMinute() << ":" << t.GetSecond() << "-"
         << "Add() operation started..." << endl;

    //file<<t.Format() << "-" << "Add() operation started..." << endl;

    HRESULT hr = proxy->Hai();

    file <<t.GetHour() << ":" << t.GetMinute() << ":" << t.GetSecond() 
         << "-" << "Add() operation finished..." << endl;

    file.close();

    return hr;
}
4

1 回答 1

2

请检查 fstream file("D:\k.txt", ios::app); 行的有效性 意思是“可能 d:\ 在智能手机中不存在”。

以下是 fstream 对象创建的详细信息

http://www.cplusplus.com/reference/iostream/fstream/fstream/

" fstream ( ); 显式 fstream ( const char * 文件名, ios_base

:openmode 模式 = ios_base::in | ios_base::out );

构造对象和可选的打开文件构造 fstream 类的对象。这意味着关联的 filebuf 对象的初始化以及以 filebuf 对象作为参数调用其基类的构造函数。

此外,当使用第二个构造函数版本时,流与物理文件相关联,就好像调用了具有相同参数的成员函数 open。

如果构造函数没有成功打开文件,尽管没有文件与流缓冲区相关联并且设置了流的失败位(可以通过继承成员失败检查),但仍会创建对象。"

于 2012-03-05T06:06:46.777 回答