2

我的 .exe 和 addrr.txt 文件位于 D:\ 驱动器

当我试图准备好 .txt 文件时,ifstream 什么都不做

这是我的代码:

 ifstream file;
        file.open("addrr.txt", fstream::in | fstream::out);
        if (file.is_open())
        {
            while (file.good())
            {
                cout << "Addrr.txt IsGood" <<endl;
                getline(file, Path);
            }

            file.close();
        }

抱歉这么愚蠢的问题。我是菜鸟

4

1 回答 1

2

更新

为了确保addrr.txt在应用程序运行时可以找到该文件,您需要

  • 指定文件的绝对路径,即D:\addrr.txt,或
  • 指定当前工作目录 (CWD) 的相对路径,这显然是C:\Program Files\Mozilla FireFox。(如果文件位于另一个分区上,这是不切实际的。)

CWD 通常是运行应用程序的目录。如果您在其中运行您的应用程序,D:它应该可以工作。(您的应用程序可能会在运行时更改 CWD(例如,通过使用chdir()、 或SetCurrentDirectory())。但是,通常指定文件的绝对路径或将文件放置在 CWD 的正确相对位置更合适。)


这对我来说编译并运行良好:

#include <fstream>
#include <iostream>
#include <string>
using namespace std;

int main() {
  ifstream file;
  file.open("addrr.txt", fstream::in | fstream::out);
  if (file.is_open())
  {
    while (file.good())
    {
      string Path;
      cout << "Addrr.txt IsGood" <<endl;
      getline(file, Path);
      cout << Path << endl;
    }
    file.close();
  }
}

// output similar to:
/*
Addrr.txt IsGood
addrr.txt
Addrr.txt IsGood
addrr.txt
Addrr.txt IsGood
addrr.txt
Addrr.txt IsGood

Addrr.txt IsGood

*/


// file: addrr.txt
/*
addrr.txt
addrr.txt
addrr.txt

*/

您的文件名是否正确(即区分大小写)?您是否从可执行文件所在的路径运行应用程序(文件位于当前工作目录中)?

于 2012-07-02T07:32:23.567 回答