int test = 0;
ifstream inFile;
inFile.open("hat.txt");
inFile >> test;
cout << test;
我在.exe运行的调试文件夹中有该文件,该文件的文件是hat.txt。它只有一个数字。我的问题是,当我输出时,为什么我会得到垃圾?
编辑 - 添加了失败线,它确实失败了。它为什么失败?
int test;
ifstream inFile;
inFile.open("hat.txt");
if ( inFile.fail() )
{
cout << "It Failed" << endl;
}
inFile >> test;
cout << test;
答案 0 :(得分:2)
现在您的代码检查失败了。
为什么会失败?可能该文件不存在或具有错误的权限。
我运行了这段代码。
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int test;
std::ifstream inFile;
inFile.open("hat.txt");
if ( inFile.fail() )
{
cout << "It Failed" << endl;
}
inFile >> test;
cout << test;
return 0;
}
它工作正常。如果hat.txt不存在或无法读取,那么我会“失败”。如果没有失败的支票,我会得到随机数字。
我认为你的问题在于它无法读取文件。
答案 1 :(得分:1)
一个号码后面是否有行尾?众所周知,这会导致某些工具集出现问题。
答案 2 :(得分:0)
调试文件夹(您说hat.txt
所在的位置)是否也是您的工作目录?
hat.txt
是否以任何方式被锁定(例如在应用程序中打开)?
答案 3 :(得分:0)
默认情况下,您使用read或getline将文本读入字符串。您可以使用ios :: binary标志将ifstream更改为二进制。然后你可以设置一个缓冲区,然后阅读它。然后,您需要转换为输出为文本。