ifstream 给我带来麻烦
Posted
技术标签:
【中文标题】ifstream 给我带来麻烦【英文标题】:ifstream giving me trouble 【发布时间】:2016-03-28 00:11:10 【问题描述】:我使用 fstream 让 Visual Studio 读取包含大约 100 行重复信息的文件,每行只是不同的值。我使用计数变量来跟踪读取了多少次,但它一直说 0。我知道文件正在打开,因为我放置了一个 If 语句来检查我。是的,我从中读取的文件也是我的 cpp 文件的位置。如果您能看一下并告诉我我缺少什么,我将不胜感激!
#include<iostream>
#include<iomanip>
#include<fstream>
#include<string>
using namespace std;
int main()
//file variables
string date;
int rainIn, minTempF, maxTempF;
//variables
int count = 0;
double totalRain = 0;
double averageMinimumTemp = 0;
double averageMaximumTemp = 0;
double overallMaxTemp = 0;
double overallMinTemp = 0;
ifstream inFile("2014WeatherData.txt");
if (!inFile)
cout << "Error: Input File Cannot Be Opened\n";
exit(EXIT_FAILURE);
//read file records
while (inFile >> date >> rainIn >> maxTempF >> minTempF)
count++
cout << count << " Records read\n";
return 0;
我只在计算机科学 1,所以我还在学习任何反馈将非常感谢! 这也是我试图从中读取的 txt 文档中的几行
20140101 0.00 69.08 31.10
20140102 0.00 42.98 25.16
20140103 0.00 51.98 25.16
【问题讨论】:
为什么不将cout << count...
行放入循环中以确保成功读取任何记录?我的猜测是阅读失败。
发布您正在阅读的文件的前几行可能会有所帮助(剪切'n'粘贴文件中实际的内容 - 不得作弊)
我有 if 语句来检查文件是否正在打开。我没有收到错误消息。当我从包含文件夹中取出 txt 文档时,我确实收到了该消息。但是当我把 txt 文档放回去时,我没有收到消息
还添加了txt文档的前三行。其他行都是这样的
仅仅因为文件打开,并不意味着您正在正确读取数据。 ;)
【参考方案1】:
问题是……
int rainIn, minTempF, maxTempF;
...创建int
eger 变量,然后您尝试将浮点值读入其中。将它们更改为double
s。 (count++
后面还需要一个分号)。
【讨论】:
以上是关于ifstream 给我带来麻烦的主要内容,如果未能解决你的问题,请参考以下文章