gpt4 book ai didi

c - `ungetch` 是如何工作的?

转载 作者:行者123 更新时间:2023-11-30 17:27:55 26 4
gpt4 key购买 nike

我到处寻找,但找不到答案!我正在使用 K&R C 书籍中的一个名为 getop 的函数进行练习。当它查看输入中的下一个字符并发现它不是数字时,调用 unget 时该字符将存储在哪里?我可以编译并运行代码,所以我知道它可以工作,我只想知道字符存储在哪里。

int getop(char s[])
{
int i, c;

while ((s[0] = c = getch()) == ' ' || c == '\t')
;
s[1] = '\0';
if (!isdigit(c) && c != '.')
return c; /* not a number */
i = 0;
if (isdigit(c)) /*collect integer part*/
while (isdigit(s[++i] = c = getch()))
;
if (c == '.') /*collect fraction part*/
while (isdigit(s[++i] = c = getch()))
;
s[i] = '\0';
if (c != EOF)
ungetch(c);
return NUMBER;
}

最佳答案

它并没有真正查看,而是将字符读入流的缓冲区中。在无缓冲的流上,或者当您在打开文件或查找后未读取任何内容时,ungetc() 不保证正常工作。

关于c - `ungetch` 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26222939/

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