c++在文件data.txt中识别特定关键字mark开始进行读取存储到类的数组,知道读到关键字endi
时间: 2024-03-05 21:54:01 浏览: 98
可以尝试使用以下代码:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
const int MAX_SIZE = 100; // 数组最大长度
class Data {
private:
string arr[MAX_SIZE]; // 字符串数组
int len; // 数组实际长度
public:
Data() {
len = 0;
}
void add(string s) {
if (len < MAX_SIZE) {
arr[len++] = s;
}
}
void print() {
for (int i = 0; i < len; i++) {
cout << arr[i] << endl;
}
}
};
int main() {
ifstream infile("data.txt"); // 打开文件
string line;
bool inBlock = false; // 是否在关键字mark和endi之间的标记
Data data; // 存储数据的对象
while (getline(infile, line)) { // 逐行读取文件
if (line == "mark") { // 如果读到关键字mark
inBlock = true; // 设置标记为true
continue; // 继续读取下一行
}
if (line == "endi") { // 如果读到关键字endi
inBlock = false; // 设置标记为false
break; // 退出循环
}
if (inBlock) { // 如果在mark和endi之间
data.add(line); // 将字符串添加到数组中
}
}
data.print(); // 输出数组中的字符串
infile.close(); // 关闭文件
return 0;
}
```
这个程序会打开名为"data.txt"的文件,逐行读取文件内容。当读到关键字"mark"时,设置一个标记,表示接下来读取的内容都是需要存储到数组中的。当读到关键字"endi"时,退出循环。在标记为true的情况下,将每一行字符串添加到数组中。最后输出数组中的所有字符串。
你可以根据自己的需要修改代码中的常量和类的定义。
阅读全文