比较文本文件的元素
Comparing elements of text file between each other
我正在尝试将三个数字的块相互比较,以创建一个新的输出文件,其中只有满足该数字的输出文件:块的第一个数字小于第二个数字并且小于第三个数字,块中的第二个数字必须大于第一个但小于第三个。
这是我输入文件的代码:
int main()
{
ofstream outfile ("test.txt");
outfile << "123 456 789 123 123 432 n 123 243 " << endl;
我想将其分成三个块,例如"123"、"456"等,以便只能在新的输出文件中写入满足要求的那些。我决定将整个文件转换为整数向量,以便能够比较它们。
char digit;
ifstream file("test.txt");
vector<int> digits;
while(file >> digit) {
digits.push_back(digit - '0');
}
我想比较它们的方法看起来像这样:
bool IsValid(vector<int> digits){
for(int i=0; i<digits.size(); i++){
if(digits[0] < digits[1] & digits[0] < digits[2] & digits[1]<digits[2])
return true;
else{
return false;
}
}
}
然而,这只是比较第一个块,你会以不同的方式做吗? 还是我应该继续做矢量的想法
你可以这样做。"get"读取单个字符,当有 3 位数字时,调用函数 IsValid。
#include <fstream>
#include <string>
#include <vector>
using namespace std;
bool IsValid(vector<int> digits)
{
if(digits[0] < digits[1] & digits[0] < digits[2] & digits[1]<digits[2])
return true;
else
return false;
}
int main()
{
ifstream in("test.txt");
ofstream out("output.txt");
char tmp;
vector<int> digits;
while(in.get(tmp))
{
if(tmp!=' ' and tmp!='n')
{
digits.push_back(tmp-'0');
if(digits.size()==3)
{
if(IsValid(digits))
out<<digits[0]<<digits[1]<<digits[2]<<endl;
digits.clear();
}
}
}
out.close();
in.close();
}
如果你的任务是:块的第一个数字小于第二个数字并且小于第三个数字,块中的第二个数字必须大于第一个但小于第三个数字 - 字符串类型 - 排序 - 使用它(( 如果数据是 3 位数字并且空格分隔
(std::stringstream ss{line}; - 例如像 fstream (((
#include <iostream>
#include <vector>
#include <iterator>
#include <string>
#include <sstream>
#include <algorithm>
int main() {
std::string line{"123 456 789 123 123 432 123 243 "};
std::cout << line << std::endl;
std::string out_line;
std::stringstream ss{line};
std::string tmp_str;
while(ss >> tmp_str) {
if (std::is_sorted(std::begin(tmp_str), std::end(tmp_str))) {
out_line += tmp_str + " ";
}
}
std::cout << out_line << std::endl;
return 0;
}
相关文章:
- 如何在C++中确定文本文件中的元素是字符还是数字
- 比较文本文件的元素
- 使用 libxml2 解析 XML 文件时缺少元素值
- 比较文本文件的元素
- 从二进制文件中读取元素时引发异常(引发异常:读取访问冲突. _Pnext 0xB414D4)
- 如何在C++中将.csv文件的元素存储到二维向量中?
- 如何在 C++ 中将从文本文件中读取的元素推送和弹出到数组中,并按 Revserse 顺序输出堆栈?
- OpenCV 文件存储 - 错误:元素之间的解析错误 (icvYMLParseValue) 缺失
- 尝试读取数据文件,存储在数组中并打印所有元素,但它不起作用
- 计算TXT文件中元素的数量
- 使用提升属性树检查 xml 文件中是否存在元素
- 如何在头文件中定义结构的元素
- 可视化地将数组的所有元素输出到 C++ 中的文件中
- 在 c++ 中替换文件中特定位置的元素
- 将多种数据类型写入文件时的其他行和额外的数组元素
- 将数据从文件读取到链接列表中,并在链接列表中搜索元素
- 从字符串转换为float时,丢失文件中的第一行元素
- C++2d数组,用文件中最后一个元素值填充所有元素
- 使用 CDT 从头文件中获取属性定义的节点元素是什么
- 如何将文件的元素放入列表中