Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C程序,如何使用scanf从用户1处一个接一个地获取2个字符串?_C - Fatal编程技术网

C程序,如何使用scanf从用户1处一个接一个地获取2个字符串?

C程序,如何使用scanf从用户1处一个接一个地获取2个字符串?,c,C,我有个问题,找不到答案 我需要使用scanfmust从用户处获取2个字符串并打印它们 我有两个问题 1.当我键入第一个字符串时,不知何故跳过了第二个字符串。 2.如果我的字符串包含空格,我只取字符直到空格,从我认为的第二个单词到第二个scanf 这是我的密码 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> void main() { char format[30];

我有个问题,找不到答案

我需要使用scanfmust从用户处获取2个字符串并打印它们

我有两个问题 1.当我键入第一个字符串时,不知何故跳过了第二个字符串。 2.如果我的字符串包含空格,我只取字符直到空格,从我认为的第二个单词到第二个scanf

这是我的密码

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
void main()
{
    char format[30];
    char numbers[20];

    scanf("%s", format);

    scanf("%s", numbers);

    printf("\n %s %s", format, numbers);
}
是否可以从用户1处一个接一个地获取包含空格的2个字符串? 提前谢谢

我是这样解决的

我添加了另一个我不需要的扫描,现在跳过第二个扫描,但在第三个扫描时停止。 这不是最好的办法,但有帮助

scanf("%[^\n]s", format);
scanf("%c", &temp);
scanf("%[^\n]s", numbers);

如果使用字符类,这是一个非常棘手的请求,因为%[^n]会在输入缓冲区中留下一个\n。您可以通过在第二次扫描中读取字符来解决此问题:


看一看。我设法用空格扫描了字符串,但它仍然跳过了第二次扫描,插入了测试字符串。或以“\n”开头。这些更改处理和\n。是否看到其他孔?如果用户输入“\n”,则未初始化或设置格式,printformat=%s\n,format;是UB。好的代码检查输入函数(如scanf)的返回值。scanf%[^\n],格式;也会出现缓冲区溢出。也许你应该回答这个问题,而不是仅仅指出我答案中的缺陷。我的答案是对你的回答,而不是仅仅指出缺陷,因为它还提出了改进意见。检查用户输入函数的结果对于识别输入问题非常有用。
#include <stdio.h>
#include <string.h>

int main(void)
{
    char end;
    char format[30];
    char numbers[20];

    scanf("%[^\n]", format);
    scanf("%c", &end);
    scanf("%[^\n]", numbers);
    scanf("%c", &end);
    printf("\n");
    printf("format = %s\n", format);
    printf("numbers = %s\n", numbers);

    return 0;
}
A string with spaces
Another string with spaces

format = A string with spaces
numbers = Another string with spaces