比较两个txt,每个txt有两列数据,其中第一列完全相同,若第二列的数据不同,将其中一个txt的两列数据作为a,b添加到uint16_t[30中
时间: 2024-10-19 13:11:39 浏览: 29
sqlserver清除完全重复的数据只保留重复数据中的第一条
4星 · 用户满意度95%
你可以使用C++来完成这个任务。首先,你需要两个txt文件,每个文件有两列数据,其中第一列完全相同。这些数据将被用来填充一个uint16_t数组。以下是一个简单的代码示例,它比较两个txt文件,并提取出第二列不同的数据:
```cpp
#include <fstream>
#include <vector>
#include <unordered_set>
std::vector<uint16_t> readData(const std::string& filename) {
std::vector<uint16_t> data;
std::ifstream file(filename);
if (file) {
std::string line;
while (std::getline(file, line)) {
std::stringstream ss(line);
uint16_t value;
ss >> value;
data.push_back(value);
}
}
return data;
}
int main() {
// 假设你有两个txt文件,名为file1.txt和file2.txt,它们的第一列数据完全相同。
std::vector<uint16_t> data1 = readData("file1.txt");
std::vector<uint16_t> data2 = readData("file2.txt");
// 检查第二列的数据是否不同。如果不同,则将其中一个txt的两列数据作为a,b添加到uint16_t数组中。
std::unordered_set<uint16_t> set(data1.begin(), data1.end()); // 将第一列数据放入集合中以方便比较
for (const auto& value : data2) {
if (set.find(value) == set.end()) { // 如果第二列的数据不在集合中,那么添加到数组中
a.push_back(value);
b.push_back(value);
}
}
return 0;
}
```
这个代码首先会读取两个txt文件中的数据,然后将这些数据存储在两个向量中。接着,它会将第一个文件中的所有数据放入一个集合中以方便比较。如果第二个文件中某个数据不在集合中,那么这个数据就会被添加到数组a和b中。最后,这个代码会返回0表示一切正常。
请注意,这个代码假设你的txt文件中的数据都是有效的uint16_t类型。如果你的数据不符合这个假设,你可能需要修改代码以适应你的具体情况。此外,这个代码没有处理可能出现的错误,例如文件不存在或无法读取等。在实际使用中,你可能需要添加适当的错误处理代码。
阅读全文