读取 .tsv 文件中的特定列
Reading a specific column in a .tsv file
我正在尝试将数据从 .tsv 文件读取到向量中。该文件的结构如下:
A B
1 2
2 4
6 8
我想问程序应该读取哪一列,然后将该列中的值推入向量。到目前为止,我的代码是这样的:
int main() {
string filename, column, headerLine;
vector<double> data, tempData;
int numColumn;
ifstream dataFile;
cout << "enter a filename" << endl;
cin >> filename;
dataFile.open(filename);
cout << "enter a column name" << endl;
cin >> column;
cout << "reading column " << column << " from " << filename;
getline(dataFile, headers);
//here's where I feel stuck
}
如果我可以将标头放入名为 headersList 的向量中,然后对数据行执行类似操作,我将能够做到这一点:
for(int i = 0; i < headersList.size(); i++) {
if(headersList[i] == column) {
numColumn = i;
}
}
while(!dataFile.eof()) {
//some way of getting the data points into a vector called tempData
data.push_back(tempData[numColumn]);
tempData.clear();
}
我真的很感激一些帮助
尝试以下代码:
while(!dataFile.eof()) {
std::string str;
std::getline( dataFile, str);
std::stringstream buffer(str);
std::string temp;
std::vector<double> values;
while( getline( buffer, temp, 't') ) {
values.push_back( ::strtod(temp.c_str(), 0));
}
data.push_back(values[numColumn]);
}
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 挂起和取消挂起一个文件DLL
- 如何确定我已使用非编码文件到达 EOF?
- 命名空间中具有.h和.cpp文件的类
- 如何使用ndk-build.cmd构建Android.so文件
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 读取文件并输入到矢量中
- 在C++中查找文件
- c++库的公共头文件中应该包含什么
- 用c++从输入文件中读取另一行
- Cppcheck生成xml转储文件
- 读取文件的最后一行并输入到链接列表时出错
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- 当存在空单元格时,用于 c++ 的 Tsv 文件解析器会突然结束
- 读取 .tsv 文件中的特定列