gpt4 book ai didi

c - 使用 c 读取包括空格在内的整行

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

我正在尝试从用户那里读取整行,包括空格,但是我现在的代码仅在 for 循环的第一次迭代时正确执行 scanf。之后它简单地打印 x 9 次而不是再次询问用户更多输入。好像在后续迭代中没有调用 scanf 为什么会这样?我怎样才能解决这个问题?我的代码如下。谢谢

#include <stdio.h>
#include <stdlib.h>

int main(){
char x[1024];
for (int n=0; n<10; n++){
scanf("%[^\n]s",x);
printf("x = %s\n",x);
}

最佳答案

The scanf family has myriad problems包括将项目留在缓冲区中,然后它将继续重新读取。那就是发生在你身上的事情。如果您不需要使用它,请不要使用它。

使用fgets 读取整行。然后,如果您想进一步解析该行,请使用 sscanf

char line[BUFSIZ];
while( fgets(line, sizeof(line), stdin) != NULL ) {
...
}

关于c - 使用 c 读取包括空格在内的整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52265163/

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