0

我安装了一个新版本的 os X(最初是 10.7,然后更新到 10.7.5) - 我在终端中丢失了 man fgets,它不再存在(不是 olny fgets,还有其他一些)。我正在使用 xcode 4.6.3,更新了各种文档。在文档中我只有 FGETS(3),没有 fgets!当我写这段代码时:

#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的文件“/tmp/words.txt”,即使它以文本模式“t”打开。用于创建/编辑文件的编辑器以 . 结尾\r

请参阅 @Michael Haren 在Windows 和 Linux 之间的行尾不同吗?

顺便说一句:word[strlen(word) - 1] = '\0'; 可能是一个问题,尽管在这种情况下不是,因为strlen(word)可能是 0。(@wildplasser)

于 2013-10-17T03:48:07.493 回答