gpt4 book ai didi

c++ - 我的代码不断返回 0 作为文本文件中的小数位数

转载 作者:太空宇宙 更新时间:2023-11-04 14:33:49 24 4
gpt4 key购买 nike

我制作了一个文本文件,里面填满了用空格分隔的小数,我想数一数有多少。问题是当我检查是否正确时,程序说文件中的元素数量为 0。

ifstream dataInput("Data Set.txt");
double readNumber;
vector<int> dataSet;
while (dataInput >> readNumber){
dataSet.push_back(readNumber);
}
cout << "the Number of elements in this file is " << dataSet.size() << endl;

txt文件:

3.2 1.9 2.7 2.4 2.8 2.9 3.8 3.0 2.5 3.3 1.8 2.5 3.7 2.8 2.0 3.2 2.3 2.1 2.5 1.9

我的预期结果是

The number of elements in this file is N.

但我得到:

The number of elements in this file is 0.

编辑:感谢这里的人,我发现我的文件无法正常打开。我添加了行

if (!dataInput.is_open()) {
cerr << "The file can not be opened\n";
exit(1);//exits the program
}

检查文件是否正常打开。

最佳答案

作为建议,您应该熟悉 STL,但要注意这需要一些时间来练习。最后,您将能够编写非常简洁的代码。

#include <iostream>
#include <fstream>
#include <vector>
#include <iterator>

int main() {
std::ifstream dataInput("./data/TestFile.txt");
if (!dataInput.good()) return EXIT_FAILURE;
std::vector<double> dataSet;
std::copy(std::istream_iterator<double>(dataInput), std::istream_iterator<double>(), std::back_inserter(dataSet));
std::cout << "The number of elements in this file is: " << dataSet.size() << "\n";
return EXIT_SUCCESS;
}

您不应该为了编写更少的代码而编写using namespace std。这被认为是一种不好的做法。

关于c++ - 我的代码不断返回 0 作为文本文件中的小数位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56853510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com