在C++中用一个vector存储TXT中每一行的不同类型数据
时间: 2024-02-22 22:59:16 浏览: 70
可以使用`stringstream`将每一行数据读入,然后根据数据类型存入`vector`中。
以下是一个示例代码:
```c++
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
using namespace std;
int main() {
vector<int> intVec;
vector<double> doubleVec;
vector<string> stringVec;
ifstream inFile("data.txt");
string line;
while (getline(inFile, line)) {
stringstream ss(line);
string word;
while (ss >> word) {
if (isdigit(word[0])) {
// 判断是否为数字
if (word.find('.') != string::npos) {
// 判断是否为浮点数
double d = stod(word);
doubleVec.push_back(d);
} else {
int i = stoi(word);
intVec.push_back(i);
}
} else {
stringVec.push_back(word);
}
}
}
// 输出结果
for (int i : intVec) cout << i << " ";
cout << endl;
for (double d : doubleVec) cout << d << " ";
cout << endl;
for (string s : stringVec) cout << s << " ";
cout << endl;
return 0;
}
```
以上代码假设数据文件为`data.txt`,每行数据格式为混合的数字和字符串,例如:
```
1 2.3 abc 4
5.6 def 7
8 ghi 9.1
```
输出结果为:
```
1 4 5
2.3 7 9.1
abc def ghi
```
阅读全文