gpt4 book ai didi

c - 如何跨多行、空格等读取用户输入?

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

我正在尝试扫描一些用户输入,但是当我运行该程序时,我得到的只是一堆 3/4 分数。

我需要能够扫描字符、空格和换行符。如果用户输入如下内容:

Hello this
is
a test123 234 !!!

一旦他们输入完他们想输入的内容,他们将按 CTRL+D,这就是我知道停止阅读他们所说内容的方式。

这是我的代码:

char user_input[1000];
int i = 0;
while (scanf("%c", &user_input[i]) == 1) {
i++;
}

最佳答案

您的代码没问题。以下程序:

#include <stdio.h>

int main()
{
char user_input[1000];
int i = 0;
while (scanf("%c", &user_input[i]) == 1) {
i++;
}
user_input[i] = '\0';
printf("%d\n", i);
printf("%s", user_input);
return 0;
}

根据您的输入生成以下内容:

42
Hello this
is
a test123 234 !!!

不过scanf一般用于扫描格式化输入。我建议使用 getchar()fgets()

一次读取一个字符
int main(void) {
char user_input[1000];
int i = 0;
int temp;
while ((temp = getchar()) != EOF) {
user_input[++i] = temp;
}
user_input[i] = '\0';
}

关于c - 如何跨多行、空格等读取用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50252580/

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