"je comprend pas trop quand on dit lire cela veut dire ecrire et inversement, pourquoi sa? "
Je ne suis pas sûr de te comprendre, mais quand toi tu écris, le programme lui lit ce que tu écris. Peut-être que ce qui te trouble, c'est que l'on parle au point de vue du programme et pas de toi, mais c'est très secondaire comme problème.
Pour ton autre question, sur les fonctions, on indique dans les parenthèses les arguments que la fonction va attendre, c'est à dire les données dont elle a besoi pour travailler. Tu ne mets donc rien (void) si c'est une fonction qui renvoie un résultat sans information externe, par exemple :
int DonneUnNombreAleatoire(void)
{
return 7; //nombre le plus aléatoire possible...
}
ou
char CaractèreEntréAuClavier(void)
{
char c = lit_le_clavier(stdin); //par exemple scanf, ou getc
return c;
}
Mais si la fonction a besoin de donnée pour faire ses calculs alors tu les indique là :
int additionne(int premier, int second)
{
return premier + second;
}
C'est la base, peut-être devrais tu lire un cours sur le C, pour bien comprendre la structure du langage et ce à quoi sert une fonction qui est la brique de base de la programmation.