编写一段程序,将txt文件中的第一列读入shijian[],第二列读入qhe[]
时间: 2024-10-27 17:11:33 浏览: 11
为了编写这样的程序,假设你已经有一个txt文件,其中的第一列存储了时间(shijian),第二列存储了值(qhe)。我们可以使用C++的标准库`fstream`来逐行读取数据,并将其分别存储在两个数组中。下面是一个简单的示例:
```cpp
#include <iostream>
#include <fstream>
#include <vector> // 用于动态大小的数组
std::vector<std::string> shijian; // 存放时间字符串
std::vector<int> qhe; // 存放数值
int main() {
std::ifstream inputFile("input.txt"); // 假设输入文件名为input.txt
if (!inputFile.is_open()) { // 检查文件是否成功打开
std::cerr << "Failed to open the file!" << std::endl;
return 1;
}
std::string line;
while (std::getline(inputFile, line)) { // 逐行读取
size_t pos = 0; // 位置标记
int value;
// 分割每行,提取第一列时间和第二列值
std::string column1 = line.substr(0, line.find(',')); // 提取到第一个逗号前的位置
std::istringstream iss(column1); // 创建istringstream来解析字符串
if (!(iss >> column1)) {
std::cerr << "Invalid format for time!" << std::endl;
continue;
}
shijian.push_back(column1);
pos = line.find(',') + 1; // 移动到第二个逗号之后的位置
if ((pos == std::string::npos) || iss.fail()) { // 如果找不到第二个逗号或解析失败
std::cerr << "Invalid format for value!" << std::endl;
continue;
}
iss >> value; // 解析值并存储到整数变量中
qhe.push_back(value);
}
inputFile.close(); // 关闭文件
// 打印结果供检查
for (size_t i = 0; i < shijian.size(); ++i) {
std::cout << "Shijian[" << i << "]: " << shijian[i] << ", Qhe[" << i << "]: " << qhe[i] << std::endl;
}
return 0;
}
阅读全文