0

OS Xの新しいバージョンをインストールしました(最初は10.7で、次に10.7.5に更新しました)-ターミナルでman fgetsを失いました。もう存在しません(olny fgetsではなく、他にもあります)。私は xcode 4.6.3 を使用しており、あらゆる種類のドキュメントを更新しています。ドキュメントでは、fgets ではなく、FGETS(3) のみを取得しました。このコードを書くとき:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    FILE *wordFile = fopen ("/tmp/words.txt", "r");
    char word[100];
    while (fgets(word, 100, wordFile))
    {
        word[strlen(word) - 1] = '\0';          // strip off the trailing \n
        NSLog (@"%s is %lu characters long", word, strlen(word));
    }

    fclose (wordFile);
    return 0;
}

私は出力を得ました:

Joe-Bob "Handyman" Brown
Jacksonville "Sly" Murphy
Shinara Bain
George "Guitar" Book is 84 characters long

なんで?

4

1 に答える 1

0

@Martin R の私のお金.

fgets()\nテキストモード「t」で開いていても、変換されたファイル「/tmp/words.txt」が見つかりませんでした。ファイルの作成/編集に使用されるエディターは、行を\r.

Windows と Linux で行末が異なりますか? の@Michael Haren を参照してください。

ところで: word[strlen(word) - 1] = '\0'; この場合ではありませんが、strlen(word)0 の可能性があるため、問題になる可能性があります。 (@wildplasser)

于 2013-10-17T03:48:07.493 に答える