0 votes

Argument de fonction traité comme non déclaré

J'ai préparé cet exemple simple qui ne fonctionne pas pour moi.

#include <stdio.h>
#include <stdlib.h>

FILE *fp;
char filename[] = "damy.txt";

void echo (char[] text)
{
    fp = fopen(filename, "a");
    fwrite(text, 1, strlen(text), fp);
    fclose(fp);
    printf(text);
}

int main ()
{
    echo("foo bar");
    return 0;
}

Il est censé écrire à la fois dans la fenêtre de commande et dans le fichier. Cependant, cela donne une erreur de compilation - le text utilisé dans echo() n'est pas déclaré. Est-ce que c a besoin d'une autre déclaration de la variable ?

5voto

Julien Lebosquain Points 20894

Utilisez char text[] o char* text pas char[] text .

2voto

La ligne :

void echo (char [] text )

devrait être :

void echo (char text [])

Et vous en avez besoin :

#include <string.h>

pour obtenir la déclaration de la strlen fonction.

0voto

barrycarter Points 1605

Je suis presque sûr que tu es censé faire "char *" et non "char []".

0voto

ShinTakezou Points 5603

Il est clair que la syntaxe

char[] var;

est un javaisme. En C, cela devrait être char var[] . En outre, vous devez ajouter #include <string.h>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X