PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : compiler errors -h



blackpearl
21-12-2004, 16:55
Hello @ all

Nach langer Suche u.v.m. hab ich nun endlich was zustande gebracht mit dem man "wörter" suchen kann.Leider bekomme ich einige Compiler Fehler und hoffe nun auf eure Hilfe.


int CheckWord(char * tmpword)
{
ifstream fin2("verbs.txt", ios::nocreate);
char buffer[100];
int bufferpos = 0;
char ch;
while(fin2.get(ch))
{
buffer[pos]=ch;
pos++;
if(ch == ' ' || ch == '\n')
{
pos--;
buffer[pos] = NULL;
if(!strcmpi(tmpword, buffer))
{
return 1;
}
pos = 0;
}
}
return 2;
}

Wenn ich versuche dies zu kompilieren bekomme ich folgende Fehlerausgabe:

wordsearch.cpp: In function `int CheckWord(char*)':
wordsearch.cpp:4: error: `ifstream' undeclared (first use this function)
wordsearch.cpp:4: error: (Each undeclared identifier is reported only once for
each function it appears in.)
wordsearch.cpp:4: error: syntax error before `(' token
wordsearch.cpp:8: error: `fin2' undeclared (first use this function)
wordsearch.cpp:10: error: `pos' undeclared (first use this function)
wordsearch.cpp:15: error: `NULL' undeclared (first use this function)
wordsearch.cpp:16: error: `strcmpi' undeclared (first use this function)
wordsearch.cpp:24:2: warning: no newline at end of file

locus vivendi
21-12-2004, 17:37
Du hast zwar relevante Teile weggelassen, aber ich vermute das der Compiler recht hat und du "ifstream" nirgendwo deklariert hast. Wenn du std::ifstream haben möchtest brauchst du ein "#include <fstream>" und du musst auch std::ifstream schreiben oder dem Compiler durch eine using-Deklaration oder - Definition klar machen das es sich bei "ifstream" um "std::ifstream" handelt.

`kk
21-12-2004, 19:58
int bufferpos = 0;
Da müsste doch

int pos = 0;
stehen, oder?

Oder du tauscht halt unten buffer[pos] durch buffer[bufferpos] aus.

locus vivendi
21-12-2004, 21:24
ios::nocreate is auch nicht Standard fällt mir noch ein, und strcmpi kenne ich auch nicht. Ist die wirklich vorhanden? In Posix, C und C++ kommt die nämlich nicht vor.