简体   繁体   English

函数“ strlen”无法解析-Eclipse cpp

[英]Function 'strlen' could not be resolved - Eclipse cpp

I'm new on Ecplipse for cpp, i'm having a lot of problem. 我是Cpp的Ecplipse的新手,我遇到了很多问题。

FIXED: 1) on the begining there was no INCLUDING FOLDER by dafault. 已修正:1)开始时,dafault没有包含文件夹。

Unpached the Eclipse's zip but it was with no libriries (or including) so i set the "Path and symbols" with the inclusing folder's DEV ( installed MinGW and included their too). 取消了Eclipse的zip的补丁,但是没有任何库(或包含库),因此我使用包含文件夹的DEV(安装了MinGW,也包括它们)设置了“路径和符号”。 Doing that, i fixed the problem of including. 这样做,我解决了包含的问题。

NOT FIXED: 2) "Function 'strlen' could not be resolved" 未修正:2)“函数'strlen'无法解析”

NOT FIXED 3) "Program "g++"(gcc too) not found in PATH" 不固定3)“在路径中找不到程序” g ++“(也为gcc)
I set the PATH with the bin of: dev, mingw and mingw/msys folders... but didn't work 我使用以下文件夹将PATH设置为:dev,mingw和mingw / msys文件夹...但是没有用

#include <iostream>
#include <stdlib.h>
#include "D:\Documenti\funz.cpp"
#include "D:\Documenti\winfunz.cpp"
using namespace std;

typedef char Elem;
struct Node{
    int id;
    Elem * val;
    Node* prev;
    Node* next;
};
typedef Node* List;

class Fifo{

List l;

public:
    Fifo(){
    l=NULL[enter image description here][1]; 
    }
    void insert(List &l, Elem *val, int id){

        Node *n;
        int riemp=strlen(val);
        n=new Node;
        n->val=new char[riemp+1];
        n->id=id;
        strcpy(n->val, val); // equivale a (*n).val=val;

        n->next=NULL;//a prescindere è NULL
        if (l==NULL){//se è il primo elemento
            n->prev=NULL;
            l=n;
        }
        else
            if (l->next==NULL){//se è il secondo elemento
                l->next=n;
                l->prev=n;
                n->prev=l->prev;
            }
            else {
                (l->prev)->next=n;
                n->prev=l->prev;
                l->prev=n;
            }
    }

    Node* search(List l, int id){

        while (l!=NULL && l->id!=id)
            l=l->next;
        return l;
    }

    void delete_node(List & l, Node* n){
        short int deltype=0;
        if (n->next==NULL && n->prev!=l) deltype=1;//se è l'ultimo elemento
        if (n->next==NULL && n->prev==l) deltype=2;//se è il secondo elemento
        if (n->next==NULL && n==l) deltype=3;//se l'unico elemento
        if (n->next!=NULL && n==l) deltype=4;//se solo il primo elemento vine eliminato

        switch (deltype){

        case 1:
            l->prev=n->prev;
            (n->prev)->next=NULL;
            break;

        case 2:
            l->prev=NULL;
            l->next=NULL;
            break;

        case 3:
            l=NULL;
            break;

        case 4:
            if (l->prev==l->next)//se sono solo gli ultimi due e il boss viene eliminato
            (l->next)->prev=NULL;
            else
                (l->next)->prev=l->prev;
            l=l->next;
            break;

        default://se è un elemento non primo e non ultimo && la lista ha elementi>2
            (n->prev)->next=n->next;
            (n->next)->prev=n->prev;
        }
        delete[] n->val;
        delete n;
    }
    void print(List l){
        if (l==NULL) cout<<"\nLista vuota\n";
        int tmp;
        char num[3+1] ;
        while (l!=NULL){
            tmp=l->id;
            if(tmp<10) strcpy(num, strcat("00", MioNS::conv_num_numchar(tmp)));
            else if(tmp<100) strcpy(num, strcat("0", MioNS::conv_num_numchar(tmp)));
            else strcpy(num, MioNS::conv_num_numchar(tmp));
            cout<<num<<":"<<l->val<<endl;
            l=l->next;
        }
        cout<<'\n';
    }

    void init_list(List & l){
        l=NULL;
    }
    void delete_list(List & l){
        Node* n;
        while (l!=NULL){
            n=l;
            l=l->next;
            delete[] n->val;
            delete n;
        }               }

    void printfile(List l , ofstream& out){
        int tmp;
        char num[3+1] ;
        while (l!=NULL){
            tmp=l->id;
            if(tmp<10) strcpy(num, strcat("00", MioNS::conv_num_numchar(tmp)));
            else if(tmp<100) strcpy(num, strcat("0", MioNS::conv_num_numchar(tmp)));
            else strcpy(num, MioNS::conv_num_numchar(tmp));
            out<<num<<":"<<l->val<<endl;
            l=l->next;
        }
        out<<'\n';
    }};

hoping the code isn't the problem. 希望代码不是问题。

ERRORS 错误

  Description   Resource    Path    Location    Type
    Cannot run program "sh" (in directory "E:\CPP\workspace\Prova1"): CreateProcess error=2, Impossibile trovare il file specificato    Prova1      -1  Configure Problem
    Function 'strcat' could not be resolved Prova1.cpp  /Prova1/src line 102    Semantic Error
    Function 'strcat' could not be resolved Prova1.cpp  /Prova1/src line 103    Semantic Error
    Function 'strcat' could not be resolved Prova1.cpp  /Prova1/src line 128    Semantic Error
    Function 'strcat' could not be resolved Prova1.cpp  /Prova1/src line 129    Semantic Error
    Function 'strcpy' could not be resolved Prova1.cpp  /Prova1/src line 31 Semantic Error
    Function 'strcpy' could not be resolved Prova1.cpp  /Prova1/src line 102    Semantic Error
    Function 'strcpy' could not be resolved Prova1.cpp  /Prova1/src line 103    Semantic Error
    Function 'strcpy' could not be resolved Prova1.cpp  /Prova1/src line 104    Semantic Error
    Function 'strcpy' could not be resolved Prova1.cpp  /Prova1/src line 128    Semantic Error
    Function 'strcpy' could not be resolved Prova1.cpp  /Prova1/src line 129    Semantic Error
    Function 'strcpy' could not be resolved Prova1.cpp  /Prova1/src line 130    Semantic Error
    Function 'strlen' could not be resolved Prova1.cpp  /Prova1/src line 27 Semantic Error
    Program "g++" not found in PATH         Preferences, C++/Build/Settings/Discovery, [CDT GCC Built-in Compiler Settings] options C/C++ Scanner Discovery Problem
    Program "gcc" not found in PATH         Preferences, C++/Build/Settings/Discovery, [CDT GCC Built-in Compiler Settings] options C/C++ Scanner Discovery Problem

For Problrem 2: 对于Problrem 2:

To use functions like strcpy, strlen, etc you must include string header file. 要使用strcpy,strlen等功能,必须包含字符串头文件。

#include<string.h>

or 要么

#include<cstring>

For Problem 3: 对于问题3:

You can refer to these links. 您可以参考这些链接。

Eclipse C++ : "Program "g++" not found in PATH" Eclipse C ++:“在PATH中找不到程序“ g ++”

http://www.eclipse.org/forums/index.php/t/697857/ http://www.eclipse.org/forums/index.php/t/697857/

Hope this helps. 希望这可以帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM