我无法让Visual Studio读入文本文件。以下是我的代码。该文件在Unix环境中完美打开,但在复制并粘贴到Visual Studio时不起作用。我正在使用fstream打开文件。为什么文件没有被阅读?
当我运行程序时,它会构建,但我没有输出。我有一个输出语句cout << "inf\n"
。所以甚至没有达到循环,这就是为什么我认为文件没有被读取。同样,当我在Unix环境中运行相同的代码时,输出语句会显示,并显示文件中的值(通过tree.insert(),tree.remove())。
我在this link中尝试了解决方案。正如它所建议的那样,我将工作目录更改为$(ProjectDir)\ Debug和$(ProjectDir)\ Release。此外,我将文本文件从Resources文件夹移动到解决方案资源管理器中的源文件夹。但是,该文件仍未被读取。
我还更新了我的代码,以便在fstream inf(“BTREE5_1.txt”)之后直接包含cerr << "Error: " << strerror(errno);
。使用这行代码,我得到的输出是
Error: No such file or directory
有人可以解释一下原因吗?我的文本文件与我的代码位于同一文件夹中,如上所述。
#define _CRT_SECURE_NO_WARNINGS
#include <fstream>
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include "BTree.h"
using namespace std;
int main()
{
bool first = true;
BTree tree(6, 2);
int value;
char s[80], command;
ifstream inf("BTree5_1.txt");
cerr << "Error: " << strerror(errno);
inf.getline(s, 80);
while (inf >> command >> value)
{
cout << "inf\n";
if (command == 'i')
tree.insert(value);
else
{
if (first)
{
cout << "After all insertions.\n";
tree.print();
first = false;
} // if first
cout << "Deleting " << value << ". \n";
tree.remove(value);
tree.print();
// fgets(s, 80, stdin);
} // else deletion
} // while
system("PAUSE");
return 0;
} // main
答案 0 :(得分:0)
问题是我从Unix环境中复制并粘贴了我的文本文件。为了解决这个问题,我只是将文本文件从我的C驱动器放入我的目录。
ie&gt;)C:\ Users \ s.proctor \ Documents \ Visual Studio 2015 \ Projects \ ecs60 \ p2 \ p2 \ p2