J'espère avoir formaté le code correctement cette fois. Permettez-moi d'abord de dire que le code fonctionne tel quel; c'est en comprenant certaines parties et en modifiant d'autres que j'ai des ennuis. Je vais supprimer mes nombreux commentaires et me limiter à quelques questions à ce sujet. 1. FILE est un mot-clé dans Obj-C? Quelle est sa fonction? Pourquoi toutes les capsules? 2. Que fait "r"? 3. Le fichier texte contient déjà des chaînes contenant des espaces vides, chacune se terminant par \ n; pourquoi ne pas en faire des NSStrings au lieu des c-strings? 4. Pourquoi, lorsque j'essaie de modifier le paramètre de lancement du fichier (en utilisant les exécutables, en cliquant sur arguments et plus, et en tapant le paramètre) sur autre chose que/tmp (comme/Desktop), ai-je des erreurs? Après tout,/tmp est un endroit volatile et vulnérable. C'est l'erreur que j'ai eu pour/Desktop: Le débogueur a quitté en raison du signal 10 (SIGBUS).Travailler avec des fichiers
Voici le code:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv []) { NSAutoreleasePool * Piscine = [[NSAutoreleasePool alloc] init];
if (argc == 1)
{
NSLog(@"You need to provide a file name");
return 1;
}
FILE *wordFile = fopen(argv[1], "r");
char word[100];
while (fgets (word, 100, wordFile))
{
word[strlen(word) - 1] = '\0';
NSLog(@"%s is %d characs long", word, strlen(word));
}
fclose (wordFile);
[pool drain];
return 0;
}
Le terme «r» ne signifie-t-il pas techniquement «ouvert en lecture seule»? Et les autres sont "ouverts pour XXX seulement"? – MJB
Eh bien, je le vois documenté comme "Ouvrir un fichier pour la lecture.Le fichier doit exister." "r +" signifie lire et écrire. Mais si ce n'est qu'un r, oui, lisez seulement. – rob
Merci pour l'aide. Désolé pour le retard qui vous revient à ce sujet. Mais j'ai trouvé tout ce que vous avez mentionné dans un site Web C std lib. L'erreur msg est là (NSLog "Vous devez ... nom de fichier"). Je ne suis pas sûr comment approcher "changer dans ce répertoire dans une fenêtre de console". Est-ce la même fenêtre de console dans Xcode qui montre le programme en cours d'exécution? Si oui, quelle est la syntaxe dont j'ai besoin pour changer de répertoire? Est-ce cd/Desktop? – Rich