逐行读取字符串(在 Objective-C 中)

发布于 2024-10-25 00:56:01 字数 172 浏览 6 评论 0原文

逐行读取字符串的快速而简单的方法是什么?

我目前正在使用 Xcode,但欢迎使用任何语言的解决方案。

作为参考,我更愿意创建一个函数,让我可以像从 C# 中的文件中读取行一样读取它:

lineString = handle.ReadLine();

What is a fast and simple way to read a string line-by-line?

I am currently using Xcode, although solutions in any language are welcome.

For reference, I would prefer to make a function that allows me to read it much like one could read lines from a file in C#:

lineString = handle.ReadLine();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半世蒼涼 2024-11-01 00:56:01

答案没有解释如何逐行读取LARGE文本文件。 Objective-C 中没有很好的解决方案来读取大型文本文件而不将它们放入内存(这并不总是一个选项)。

在这些情况下,我喜欢使用 c 方法:

FILE* file = fopen("path to my file", "r");

size_t length;
char *cLine = fgetln(file,&length);

while (length>0) {
    char str[length+1];
    strncpy(str, cLine, length);
    str[length] = '\0';

    NSString *line = [NSString stringWithFormat:@"%s",str];        
    % Do what you want here.

    cLine = fgetln(file,&length);
}

请注意,fgetln 不会保留换行符。另外,我们将 str 的长度+1,因为我们想为 NULL 终止留出空间。

The answer does not explain how to read a LARGE text file line by line. There is not nice solution in Objective-C for reading large text files without putting them into memory (which isn't always an option).

In these case I like to use the c methods:

FILE* file = fopen("path to my file", "r");

size_t length;
char *cLine = fgetln(file,&length);

while (length>0) {
    char str[length+1];
    strncpy(str, cLine, length);
    str[length] = '\0';

    NSString *line = [NSString stringWithFormat:@"%s",str];        
    % Do what you want here.

    cLine = fgetln(file,&length);
}

Note that fgetln will not keep your newline character. Also, We +1 the length of the str because we want to make space for the NULL termination.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文