C++ 打开.txt文件并读取要放置在数组中的数字
c++ open .txt file and read numbers to place in an array
我有一个文本文件,其中的数字在一行上,例如(逗号之间没有空格(:
-1,5,-3,10,500000,-6000
到目前为止,这是我拥有的代码,但我在矢量数组中根本没有得到任何东西
fstream fp;
vector<int> numbers;
int number;
fp.open("numbers.txt", ios::in | ios::binary);
if(fp.is_open()){
while(fp >> number){
numbers.push_back(number);
}
}
fp.close();
cout << "Numbers:n";
for (int i=0; i < numbers.size(); i++) {
cout << numbers[i] << 'n';
}
我觉得我只是没有正确读取文件,或者整行只是被放入数字 var 中。另外,文件中的数字数量未知,所以我想远离硬编码
fstream fp;
vector<int> numbers;
int number;
fp.open("numbers.txt", ios::in | ios::binary);
if(fp.is_open()){
while(fp >> number){
numbers.push_back(number);
fp.get();
}
}
fp.close();
cout << "Numbers:n";
for (int i=0; i < numbers.size(); i++) {
cout << numbers[i] << 'n';
}
你只是忘记了逗号! 使用 fp.get((; 去掉它们,然后它会正常工作:D
首先,您的输入文件不是二进制的 - 不要使用 ios::binary
。
其次,您需要拆分输入令牌。每次偶然发现逗号时,输入操作都会失败。您可能需要输入字符或字符串来处理这些。
输入在
尝试将,
插入整数时失败。您应该使用 getline
插入值,直到逗号分隔符:
while (std::getline(fp, number, ','))
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
像这样
if(fp.is_open()){
while(fp >> number){
numbers.push_back(number);
char dummy_variable_for_the_comma;
fp >> dummy_variable_for_the_comma; // read and discard a comma
}
}
你必须告诉计算机跳过逗号,它不会为你这样做。
相关文章:
- 在将数字随机生成为数组期间从内存输出随机数的数组
- 如何计算数组中元素的位数?(不是数组的长度),并计算其数字的总和
- 数组/c++中的大量数字
- 遍历并行数组以确定C++中的最大数字
- 整数区间(或 int 数组)中每个数字的出现次数
- 如何在 C++ 中将文件中的逗号分隔数字读取到数组中?
- 将随机生成的数字添加到数组 + 对这些数组求平均值
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 获取 2D 数组 c++ 中的所有数字对
- 为什么使用数组元素查找最大数字的程序不起作用?
- 如何从向量或数组中选择最常见的数字?(前五名)C++
- 如何从保存在 Java 中C++的字节数组中读取数字?
- 以十为基数的数字到布尔数组,该数组要求二进制/基数为 2 的数字
- C++ 检查结果数组中有多少次数字
- 如何在不使用 C++ 中的数组或函数的情况下查找 N 位数字的所有排列
- 如何在C++中有效地将数字值重新分配给字符数组
- 查找数组中的最小数字
- 查找数组中重复(重复)数字的索引
- 我必须找到给定数组中所有数字的周期,就像有很多解决方案,但数组的大小是 10^5
- 是否可以将数组数字作为函数来执行?