gpt4 book ai didi

c - 程序没有给出预期的输出

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

#include <stdio.h>
#include <limits.h>

int main() {

enum loop {NO ,YES};
enum loop okloop = YES;
int i=0;

char s[8];
int lim=6;
char c;

while (okloop==YES)
{
if (i>=lim-1)
okloop=NO;
else if ((c=getchar())!='\n')
okloop=NO;
else if (c==EOF)
okloop=NO;
else {
s[i]=c;
++i;
}
}
for (i=0;i<5;++i)
printf("this is the character %c\n",s[i]);
return 0;
}

我只是从键盘输入一个字符并将其存储在一个数组中;然后我必须将数组中存储的字符打印到屏幕上,但输出并不符合我的预期。

最佳答案

根据我的理解,你需要改变

else if ((c=getchar())!='\n')

else if ((c=getchar()) == '\n')

否则,您最终将在 s[i] 中存储任何有效内容。

另外,作为旁注

  1. 始终初始化局部变量。
  2. main() 中添加 return 0;
  3. 在读取输入后考虑以 null 终止 s[i],以防万一您稍后想将其用作字符串

良好的做法。

关于c - 程序没有给出预期的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27875038/

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