-2

我正在阅读一个文本文件,其中包含制表符分隔的各种 int、string 和 double 字段。我正在尝试生成“/ t”字符的位置数组。我正在竭尽全力试图让它发挥作用。我不断得到

undefined reference to getTAB(std::string, int*)

主要错误。

我究竟做错了什么?

我的文件如下

主文件

#include <iostream>
#include <fstream>
#include <string>
#include "getTAB.h"
using namespace std;
int main ()
{
    int tab = 7; int tabPosition[tab];
    string lineOfInput;
    ifstream inFile("DATA/inputData.txt");
    while(getline(inFile,lineOfInput))
    {
        cout << lineOfInput << endl;
        getTAB(lineOfInput, &tabPosition[0]);   
    }   
    inFile.close();   
return 0; 
}

获取TAB.h

#ifndef GETTAB_H_INCLUDED
#define GETTAB_H_INCLUDED
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void getTAB(string line, int *array);
#endif // GETTAB_H_INCLUDED

和 getTAB.cpp

#include "getTAB.h"
void getTAB(string line, int *array)
{   
    int tab = 0;   
    for(int i=0; i < line.length(); i++)
    {
        if(line.at(i) == '\t')
        {
            array[tab] = i;
            cout << tab <<"----"<< i << endl;
            j++;
        }
    }   
    return; 
}

输入数据.txt

1   OTTO BROTHERS   FHS 517267  1417.174    ZA 11 TRPF 18162    BC  H
4

1 回答 1

2

我不知道你用什么命令来编译你的程序,但你应该使用这样的东西(在 g++ 的情况下)

g++ main.cpp getTAB.cpp

并不是

g++ main.cpp

您需要明确声明这两个文件才能将它们链接在一起。

我不知道您使用的是什么编译器,尽管语法将保持几乎相同。

于 2013-08-18T12:05:09.153 回答