使用cpp语言提取一个文本文件中的数值,将它们写入另一个新文件,由空白或其他字符分开的数字被认为是不同的数值
时间: 2023-05-29 14:03:07 浏览: 87
以下是一个基本的程序示例:
```cpp
#include <iostream>
#include <fstream>
#include <string>
int main() {
// 打开输入文件
std::ifstream input_file("input.txt");
if (!input_file) {
std::cerr << "无法打开输入文件" << std::endl;
return 1;
}
// 打开输出文件
std::ofstream output_file("output.txt");
if (!output_file) {
std::cerr << "无法打开输出文件" << std::endl;
input_file.close();
return 1;
}
std::string line;
while (std::getline(input_file, line)) {
std::string number;
for (char c : line) {
if (std::isdigit(c)) {
number += c;
} else {
if (!number.empty()) {
output_file << number << std::endl;
number.clear();
}
}
}
if (!number.empty()) {
output_file << number << std::endl;
}
}
input_file.close();
output_file.close();
return 0;
}
```
该程序使用 `std::ifstream` 和 `std::ofstream` 类来打开输入和输出文件。然后,它使用 `std::getline` 函数逐行读取输入文件,对于每行文本,它将逐个字符进行扫描。如果字符是数字,则将其添加到当前数字字符串中。如果字符不是数字,则将当前数字字符串写入输出文件(如果存在),并清空数字字符串以准备处理下一个数字。最后,如果数字字符串不为空,则将其写入输出文件。
注意,该程序假定每个数字都可以存储在 `std::string` 类型中。如果要处理非常大的数字,可能需要使用整数类型(例如 `long long`)来存储它们。此外,该程序没有处理输入文件格式错误的情况,例如文本包含不可转换为数字的字符。在实际应用中,可能需要添加更多的错误处理逻辑。
阅读全文