简单的ifstream没有打开任何文件

时间:2016-07-15 13:28:26

标签: c++ ifstream

纽布在这里。我花了最后4个小时试图解决这个问题。

ifstream突然无法打开文件。 ofstream在写入文件时没有问题。

文件存在,它的内容是ThisIsText,它在参考目录中,我用系统确认(“dir& pause”)

我尝试过Code :: Blocks和Dev C ++,但我认为他们使用的是相同的编译器(GNU GCC Compiler)。 我尝试使用双反斜杠的完整文件名路径。 我看到人们提到权限,但我不知道如何修补它。 我在Windows 10上。

编辑:我刚刚找到了一个新的编译器(Embarcadero 10.1 AKA Borland),代码可以使用它。我仍然想知道GNU GCC的问题是什么

以下代码跳过else语句:

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

using namespace std;

int main()
{
    string message;
    ifstream inputFile;
    inputFile.open("File.txt");

    if (inputFile.good())
    {
        inputFile >> message;
        cout << message;
        system("dir & pause");

    }
    else
    {
        cout << "failed to open input file\n";
        system("dir & pause");
    }   return 0;
}

如果有帮助,我在网上找到以下代码并输出,“错误代码= 2” 来自winerror.h,即:ERROR_FILE_NOT_FOUND

#include <windows.h>
#include <iostream>
int main()
{
  HANDLE hFile = CreateFile(
    "one.txt", // Windows does not case about case
    GENERIC_READ,
    0, // no sharing
    NULL, // default security
    OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL,
    NULL ); // no file template

  if(INVALID_HANDLE_VALUE == hFile)
  {
    DWORD errCode = GetLastError(); // see winerror.h for meanings
    std::cout << "File wouldn't open :-(" << std::endl;
    std::cout << "Error code = " << errCode << std::endl;
  }
  else
  {
    std::cout << "File opened OK :-)" << std::endl;
    CloseHandle(hFile);
  }

  return 0;
}

PS。我知道using namespace std;是不好的做法

0 个答案:

没有答案