了解在C ++中打印链接列表时的错误

时间:2014-02-22 01:14:09

标签: c++ g++

我最近在C上工作,但我已经开始学习C ++了。我做了一个功课,创建了一个程序,可以读取文本并从推算文本中组织数据。这是我离开的最后一部分,但我不知道我的代码有什么问题。这部分问题很简单,但我仍然不明白我的错误是什么。我习惯了主要编写段错误的gcc编译器,但g ++编译器错误不同。在从c转换为c ++的过程中,如何提供更多关注的任何提示或提示都将非常感激。

这是我的输出错误。

-bash-3.2$ g++ -o Printfunction Printfunction.cpp
Printfunction.cpp: In function 'void Printfunction(wordList*)':
Printfunction.cpp:43: error: cannot convert 'NumberList*' to 'Numberlist*' for argument '1' to 'std::string returnlist(Numberlist*)'
Printfunction.cpp: In function 'std::string returnlist(Numberlist*)':
Printfunction.cpp:56: error: invalid use of undefined type 'struct Numberlist'
Printfunction.cpp:10: error: forward declaration of 'struct Numberlist'
Printfunction.cpp:56: error: 'to_string' was not declared in this scope
Printfunction.cpp:57: error: invalid use of undefined type 'struct Numberlist'
Printfunction.cpp:10: error: forward declaration of 'struct Numberlist'

你能告诉我我的代码有什么问题吗?

#include <iostream>
#include <string>
#include <iomanip>

using namespace std;

struct NumberList
{
    int line;
    struct Numberlist *nextPtr;
};

struct wordList
{
    string word;
    int Count;
    NumberList lines;
    struct wordList *nextPtr;
};

void Printfunction(wordList *list);
string returnlist(Numberlist *list);

int main()
{
    wordList something;
    something.word = "SOMETHING";
    something.Count = 55555;
    something.nextPtr = NULL;
    Printfunction(&something);

}

void Printfunction(wordList *list)
{
    int i;
    i=1;
    cout<<"+----+----------------------------+-------+---------------------------------+"<<endl;
    cout<<"|#   |          WORD              | COUNT |             LINES               |"<<endl;
    cout<<"+----+----------------------------+-------+---------------------------------+"<<endl;
    while(list != NULL)
    {
        cout<<"|"<<left<<setw(4)<<i<<"|"<<left<<setw(28)<<list->word<<"|"<<left<<setw(7)<<list->Count<<"|"<<left<<setw(33)<<returnlist(&(list->lines))<<"|"<<endl;
        cout<<"+----+----------------------------+-------+---------------------------------+"<<endl;
        list = list->nextPtr;
        i++;
    }
}

string returnlist(Numberlist *list)
{
    string final;
    while(list != NULL)
    {
        final.append(", ");
        final.append(to_string(list->line));
        list = list->nextPtr;
    }
    final.append(".");
    return final;
}

1 个答案:

答案 0 :(得分:4)

问题在于,有时你将其拼写为NumberList,有时拼写为Numberlist

  

关于应该多加注意的任何提示或提示

案件很重要。