J'ai fait beaucoup de procédures simples, mais j'essaie seulement de lire le premier mot dans un char word[30]
, à partir de chaque ligne d'un fichier texte.Comment lire seulement le premier mot de chaque ligne?
J'ai essayé, mais sans succès. Oh, je dois réutiliser cet omble chaque fois que je le lis. (Pour mettre dans une liste ordonnée chaque fois que je l'ai lu).
Quelqu'un peut-il me montrer un moyen de lire de cette façon à partir d'un fichier, d'une manière simple et «propre»?
FILE *fp;
char word[30];
fp = fopen("/myhome/Desktop/tp0_test.txt", "r");
if (fp == NULL) {
printf("Erro ao abrir ficheiro!\n");
} else {
while (!feof(fp)) {
fscanf(fp,"%*[^\n]%s",word);//not working very well...
printf("word read is: %s\n", word);
strcpy(word,""); //is this correct?
}
}
fclose(fp);
Par exemple, pour un fichier qui contient:
word1 word5
word2 kkk
word3 1322
word4 synsfsdfs
il imprime seulement ceci:
word read is: word2
word read is: word3
word read is: word4
word read is:
Merci pour votre réponse, je J'ai déjà fait des fgets, mais je voudrais le faire aussi avec fscanf, juste pour couvrir toutes les options.Les enseignants disent aussi que les variantes de scanf sont plus élégantes;) et aussi plus "rusé" je suppose. Si quelqu'un veut contribuer, allez-y. – neverMind