gpt4 book ai didi

c - 使用 `getchar()` 终止 while 循环

转载 作者:行者123 更新时间:2023-12-03 13:29:12 24 4
gpt4 key购买 nike

对于我的家庭作业,我需要实现 Horners 算法以在碱基之间进行转换。

我被告知要使用 getchar() 来完成这项任务。但是我遇到了一个问题,当我按下回车键时,程序并没有终止,只是接收了更多的字符。

示例:

bryce> ./pa1
Enter the fromRadix:16

Enter the toRadix:2
abc
abc
^C
bryce>

代码:

int readRadixA(int radixA)
{
char myChar = getchar();
int result = 0;
int run = 0;

while(myChar != EOF)
{
if(myChar == "\n")
break;

Horners();

myChar = getchar();
}

return result;
}

我不是在寻求实现 Horners 的帮助;我正在寻求帮助以正确终止 getchar()

最佳答案

if(myChar=="\n")
^ ^

你比较 myChar 是错误的。试试这个:

if(myChar == '\n') 
^ ^

第二个问题是 getchar 返回 int,而不是 char。也许你可以这样重写它:

int myChar;
while((myChar = getchar()) != EOF && myChar != '\n')
{
/* Your stuff. */
}

编辑

根据评论,我认为 while 之前的一些 stdio 操作在缓冲区中留下了 \n

代替 scanf("%d", &radix) 尝试:

scanf("%d ", &radix);
^

那个空格会让 scanf 吃掉剩余的空格(包括换行符)。

关于c - 使用 `getchar()` 终止 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9139321/

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