从.txt读取int,将其保存到vector,然后保存到输出文件
Reading int from .txt , save it to vector and then save to output file
我写了一个神秘的程序,它应该打开并读取这个。txt
"> krol.txt
3 7
3 13
2 4
3 1
然后保存到vector,用一些算法做一些疯狂的操作,保存到另一个vector并流到文件中。但是在运行。exe之后会发生一些疯狂的事情。它没有显示任何东西,什么也没发生。编译过程中没有错误和…是的。我不知道哪里出了问题。你知道怎么了吗?
#include <iostream>
#include <fstream>
#include <vector>
#include <cstdlib>
using namespace std;
int nwd (int a,int b);
int main(){
ifstream fin;
fin.open("krol.txt");
if (!fin) cout << "WTF" << endl;
system("PAUSE");
vector<int> tab;
int i=0;
int n=0;
while (fin>> i){
tab.push_back(i);
}
fin.close();
vector<int> result;
bool right=false;
ofstream outFile;
outFile.open("save.txt");
i=0;
result.at(0)=tab.at(0);
while(result.at(i)!=1){
if (right){
result.push_back(tab.at(i+2));
}
else if (nwd(result.at(i),tab.at(i+2))==1) result.push_back(tab.at(i+2));
else {
result.push_back(tab.at(i+1)); right=true;
}
outFile << result.at(i) << " " ;
i++;
}
outFile.close();
return 0;
}
int nwd(int a,int b){
while (a!=b){
a>b ? a-=b : b-=a;
}
return a;
}
我想我明白了。您需要更改代码while(result.at(i)!=1){到这个while(tab.at(i)!=1){。这只是一个小错误
您的result
向量为空,因此
while(result.at(i)!=1){
将抛出out_of_range
异常并导致程序终止。
相关文章:
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 在c++中用vector填充一个简单的动态数组
- 在C++中将类(带有Vector成员)保存为二进制文件
- 如何将二进制格式的 C++ 对象的 std::vector 保存到磁盘?
- 在 Oracle12c 中保存 std::map<int, std::vector<int>>
- 如何诊断保存和加载位向量(std::vector)的奇怪行为<bool>?
- 使用 std::vector 保存 BMP 像素图
- 检查一系列单词,形成一个文本文件,保存在字符串vector C 中
- std::vector中的对象未正确保存属性
- CGAL 如何将 std::vector<Point> 点保存到 .xyz 文件中?
- 从存储在std :: vector中的数据中创建和保存图片
- Qt:将QPixmap保存到std::vector<无符号字符>-或者将QByteArray转换为std::
- 如何在 C++ 中将 std::vector<KeyPoint> 保存到文本文件
- sscanf保存到vector中
- std::string 或 std::vector<char> 来保存原始数据
- 如何将"std::vector"<uchar>保存到"std::ostream"中?
- 将"std::vector<unsigned char>"的内容保存到文件
- 从.txt读取int,将其保存到vector,然后保存到输出文件
- Gtkmm:使用RefPtr与std::vector中保存的小部件