gpt4 book ai didi

c - 函数读取c编程语言中的一行

转载 作者:太空宇宙 更新时间:2023-11-04 02:34:38 24 4
gpt4 key购买 nike

在C书上,(第二版第29页),我阅读了以下内容:

/* getline: read a line into s, return length */

int getline(char s[], int lim)
{
int c, i;
for(i=0; i<lim-1 && (c=getchar())!=EOF && c!='\n'; ++i)
s[i] = c;
if(c == '\n') {
s[i] = c;
++i;
}
s[i] = '\0';
return i;
}

}

我的问题是:为什么是i<lim-1但不是 i<lim在条件测试中? (ps:lim是一行的最大长度)

问题 2:在 C 上,是 EOF算作一个字符?

最佳答案

  1. 需要为空终止符 \0 保留空间,它在循环结束时附加到字符串。 (这就是字符串在 C 中的建模方式)。

  2. EOF 是一个特殊值,表示文件结束。请注意 getchar() 如何返回 int:这主要是为了让 EOF 的值不必在 char 的范围内.

关于c - 函数读取c编程语言中的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39077070/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com