2016-05-16 4 views
-4

Ich erhalte die oben genannte Störung (n) für die dritte Zeile des Codes Extrakt unter:erwartet Ausdruck/Aussage vor

while(getline(line, MAXLINE) > 0) { 
     lineno++; 
     if(strstr(line, *argv) != NULL) != except) { 

Beim Kompilieren es zwei Fehler wirft. Eins ist 'erwarteter Ausdruck vor'! = 'Token Zweiter ist' erwartete Aussage vor ')' Token

Als Anfänger-Programmierer bin ich nicht ganz sicher, wo ich anfangen soll, abgesehen von hier. Ich habe versucht, ähnliche Fragen zu diesem Fehler zu stellen, aber keine scheint mein Problem anzugehen. Jede/jede Hilfe wäre sehr willkommen!

Anscheinend gibt es eine Methode, hier "intelligente" Fragen zu stellen. Jede/jede Hilfe wäre sehr willkommen!

+1

'if ((strstr (line, * argv)! = NULL)! = Außer)' –

+2

Sie haben zwei Bedingungen **! = ** in einer einzigen ** if ** -Anweisung. Entscheiden Sie, was Sie erreichen möchten, und bearbeiten Sie entsprechend. –

+0

_Diese Frage wurde durch ein Problem verursacht, das nicht mehr reproduziert werden kann, oder ein einfacher Tippfehler. Während ähnliche Fragen hier zum Thema gehören könnten, wurde diese in einer Weise gelöst, die den zukünftigen Lesern wahrscheinlich nicht hilft. Dies kann oft vermieden werden, indem das kürzeste Programm identifiziert und genau untersucht wird, um das Problem vor dem Posten zu reproduzieren. –

Antwort

3

Fehlende Klammer ( in if(strstr(line, *argv) != NULL) != except) Zeile.

+0

kleine oops, das sind "geschweifte Klammern": '{' und '}' Das Problem ist das Öffnen/Schließen 'Parens' '(' und ')' sind nicht ausgeglichen. – user3629249

0

bezüglich dieser Linie:

if(strstr(line, *argv) != NULL) != except) { 

Es gibt einen Syntaxfehler.

Im Allgemeinen ist die Anzahl der Öffnung parens ‚(‘ muß die Anzahl der Schließ Pars übereinstimmen ‚)‘

Eine korrigierte Linie wäre:

if( (strstr(line, *argv) != NULL) != except) { 
^^ ^  ^ ^  ^
    +1 +2  +3   -3  -2   -1 

Das ist jedoch nicht das einzige Problem :

der Prototyp für die Funktion: getline() drei Parameter:

ssize_t getline(char **lineptr, size_t *n, FILE *stream); 

also diese Zeile:

while(getline(line, MAXLINE) > 0) { 

kompiliert nicht!

Aktivieren Sie beim Kompilieren alle Warnungen und beheben Sie diese Warnungen.

+0

Vielen Dank für Ihre Kommentare/Antwort @ Jean-Baptiste Yunès. Es war einfach ein Fall von fehlenden Klammern. Ich dachte, ich hätte die Openinhg und Clsoing Braces gezählt. Aber schätze, die Augen sehen nur, was sie sehen wollen. – JoeDoe