今回はコードを正しくフォーマットしたことを願っています。最初に、コードはそのまま機能すると言いましょう。私が問題に遭遇するのは、いくつかの部分を理解し、他の部分を変更することです。
多数のコメントを削除し、いくつかの質問に限定します。1. FILE は Obj-C のキーワードですか? その機能は何ですか?なんで全部大文字?2. "r" は何をしますか? 3. テキスト ファイルには、\n で終わる空のスペースを含む文字列が既に含まれています。c-string の代わりに NSString にしないのはなぜですか? 4. ファイルの起動パラメーターを (実行可能ファイルを使用し、引数とプラスをクリックして、パラメーターを入力して) /tmp 以外 (/Desktop など) に変更しようとすると、エラーが発生するのはなぜですか? 結局のところ、/tmp は不安定で脆弱な場所です。これは、/Desktop で発生したエラーです。シグナル 10 (SIGBUS) により、デバッガーが終了しました。
コードは次のとおりです。
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) { NSAutoreleasePool * プール = [[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;
}