读取文件的C ++不会向控制台打印任何内容

时间:2016-08-10 19:05:46

标签: c++ file

我无法将文件内容打印到控制台。

file.bin内容为“abc”。

data保留值,但它不会打印出来......

#include <Windows.h>
#include <iostream>

int main()
{
    wchar_t *data;

    FILE* file;
    int err = _wfopen_s(&file, L"file.bin", L"rb");

    if (err != 0) 
    {
      std::cout << "Error";
      return 0;
    }

    fseek(file, 0, SEEK_END);
    long lSize;
    lSize = ftell(file);
    rewind(file);

    data = (wchar_t *)malloc(lSize + 1);

    fread(data, 1, lSize, file);

    //dereference pointer
    wchar_t data2 = *data;
    std::wcout << data2; // prints nothing...

    system("PAUSE");
    return 0;
}

修改

我知道fstream,但我更喜欢C风格的开放/阅读文件。

1 个答案:

答案 0 :(得分:3)

#include <fstream>
#include <string>
#include <iostream>

int main()
{

  std::ifstream ifs("file.bin");
  std::string content( (std::istreambuf_iterator<char>(ifs) ),
                       (std::istreambuf_iterator<char>()    ) );

 std::cout<<content;

  return 0;
}

如果你正在使用c ++,请使用std :: ifstream。你需要做的比这复杂得多。见前answer