gpt4 book ai didi

C : infinite loop in the input

转载 作者:太空宇宙 更新时间:2023-11-04 03:52:27 25 4
gpt4 key购买 nike

这是我的函数,问题是它永远不会停止在命令行中获取输入。
我无法弄清楚放置 return 0 的正确行在哪里。

int my_rot13(int c) {
if ('a' <= tolower(c) && tolower(c) <= 'z')
return tolower(c)+13 <= 'z' ? c+13 : c-13;
return c;
}

int main() {

int k, c;
char *p;

if (argc < 2) {
while ((c = getc(stdin)) != EOF) {
putchar(my_rot13(c));
}
return 0;
}

for (k = 1; k < argc; k++) {
for (p = argv[k]; *p != '\0'; p++) {
putchar(my_rot13(*p));
}
putchar(' ');
}
putchar('\n');

return 0;
}

如果我传入像 ./a.out "hey" 这样的标准输入,它可以退出程序。

但是当我进入用户输入模式时我无法退出此功能。

最佳答案

您需要发送 EOF字符到 getc(),当您手动输入时。您可以在 Linux 上使用 Ctrl-D 执行此操作,在 Windows 上使用 Ctrl-Z 执行此操作。另一种选择是针对换行符 ('\n') 进行测试。

关于C : infinite loop in the input,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19694924/

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