我几乎是C ++的新手并且从学校开始做这项任务,现在我被困住了,因为我无法让它工作,一些帮助将不胜感激。提前谢谢。
我有一个带有这样整数的文本文件:8 3 7 1 2 0
我需要创建读取这些整数并将它们存储在数组中的程序。程序检查文本文件并计算有多少整数,并相应地创建所需的大小数组,然后用文件中的整数填充该数组。我想出了类似的东西:
#include <iostream>
#include <fstream>
using namespace std;
int main(){
ifstream File("data.txt");
int count;
File >> count;
int array[count];
for(int i=0; i<count; i++){
File >> array[i];
}
cout<<"File contains: "<<count<<" integers";
cout<<"Array of integers taken from the file: ";
for(int i=0; i<count; i++){
cout<<array[i];
}
}
由于某些原因,我的count
整数没有得到任何价值,我已经检查过,它只是程序后的零,因此我的整个代码都没有工作
答案 0 :(得分:0)
变量长度数组不存在于c ++中。
使用vector<int>
存储数据。
System("pwd");//linux
检查工作路径。
答案 1 :(得分:0)
如果提取失败,则将零写入值并设置failbit。如果提取导致值太大或太小而无法拟合值
std::numeric_limits<T>::max()
或{{1}写入并设置failbit标志。
这来自std::numeric_limits<T>::min()
operator>>
的文档。如您所见,如果提取失败,则变量设置为std::ifstream
。为什么提取失败?好吧,你永远不会检查文件是否打开,因此文件可能不存在并且加载失败。
但即使您的文件正确加载,我也不会觉得文件中的第一个元素是其中的整数。如果不是,则必须读取每个整数,并将它们存储在动态数组中,因为您不知道大小(如0
。)