Надеюсь, на этот раз я правильно отформатировал код. Позвольте мне сначала сказать, что код работает как есть; В понимании одних частей и модификации других я сталкиваюсь с неприятностями.
Я собираюсь удалить свои многочисленные комментарии и ограничусь несколькими вопросами по этому поводу.
1. Является ли FILE ключевым словом в Obj-C? Какова его функция? Почему все заглавные буквы?
2. Что делает "r"?
3. В текстовом файле уже есть строки, содержащие пробелы, каждая из которых заканчивается \ n; почему бы не сделать их NSStrings вместо c-strings?
4. Почему, когда я пытаюсь изменить параметр запуска файла (используя исполняемые файлы, нажимая на аргументы и плюсы и вводя параметр) на что-либо, кроме / tmp (например, / Desktop), я получаю ошибки? В конце концов, / tmp - изменчивое, уязвимое место. Это ошибка, которую я получил для / Desktop: отладчик вышел из-за сигнала 10 (SIGBUS).
Вот код:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv [])
{
NSAutoreleasePool * pool = [[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;
}