gpt4 book ai didi

c - 打印 C getchar 函数得到的字符串

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

我在 GNU 编译器上测试了一个简单的 getchar() 函数,但为什么没有得到预期的输出

mto@ubuntu:~/c$ ./a.out 
agc

mto@ubuntu:~/c$

代码如下:

#include <string.h>
#include "stdio.h"
#define MAX 80
int main()
{
char ch, buffer[MAX+1];
int x=0 ;
while ((ch =getchar() != '\n') && x<MAX)
buffer[x++]= ch;
buffer[x]= '\0';

int len = strlen(buffer);

for (int c=0; c< len; c++)
printf("%c" , buffer[c]);
return 0;

}

最佳答案

while ((ch =getchar() != '\n') && x<MAX)

应该是

while (((ch = getchar()) != '\n') && x<MAX)

注意作业周围的额外 ( .. )。由于运算符的优先级,ch =getchar() != '\n' 等效于并评估为 ch = (getchar() != '\n')!= 的优先级高于 =(赋值)。

关于c - 打印 C getchar 函数得到的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46650872/

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