如何在我的文件阅读中包含空格

时间:2013-12-02 18:11:42

标签: c++ file-handling

int main()
{
string path = "c:\\encryption\\";
string searchPattern = "*.txt";
string fullSearchPath = path + searchPattern;

WIN32_FIND_DATA FindData;
HANDLE hFind;

hFind = FindFirstFile( fullSearchPath.c_str(), &FindData );

if( hFind == INVALID_HANDLE_VALUE )
{
    cout << " !!! Error searching directory !!!" << endl;;
    return -1;
}

do
{
    string filePath = path + FindData.cFileName;
    ifstream in( filePath.c_str() );
    if( in )
    {
       //////////////////////// HERE IS PROBLEM I KNOW THAT BUT WHAT I DON'T KNOW
                char s;
                while (!in.eof()) 
                { 
                    in >> s; 
                    cout << s << endl; 
                }

                cout << "************************ File Completely Read *** **************************** " << endl;
        ///////////////////////////////////////////////////////////////////////
    }
    else
    {
        cout << " !!! Problem opening file !!!" << FindData.cFileName << "\n";
    }
}
while( FindNextFile(hFind, &FindData) > 0 );

if( GetLastError() != ERROR_NO_MORE_FILES )
{
    cout << " !!! Something went wrong during searching !!! " << endl;
}

return 0;
}

我正在逐个读取特定文件夹中的所有文件 对于每个文件逐个字符地阅读它。以上是我的努力 到目前为止,我陷入了一个我想要读取白色空间的部分 好吧..我该怎么办?我应该包括什么?请给我一些建议

2 个答案:

答案 0 :(得分:3)

>><<运算符专为格式化操作而设计,而您需要二进制操作。尝试使用ios::binary打开流:

ifstream in( filePath.c_str(), ios::binary );

并使用read(或readsome)和write来处理I / O.

如果您想坚持使用格式化操作(如果您要进行加密则不应该这样做),请使用getline读取包含空格字符的行;

答案 1 :(得分:1)

使用getline()方法获取字符和空格 这是有效的方式。