我被要求用C语言编写一个程序,在程序中需要从输入流中读取内容,读到空格后停止读取,然后再读取一直到用户按下回车键为止。 如果我这样做:
scanf("%2000s %2000s", a, b);
它将遵循第一条规则,但不会遵循第二条规则。
如果我写:
I am smart
我得到的等同于:
a = "I";
b = "am";
但应该是:
a = "I";
b = "am smart";
我已经尝试过:
scanf("%2000s %2000[^\n]\n", a, b);
并且
scanf("%2000s %2000[^\0]\0", a, b);
在第一个示例中,它等待用户按下Ctrl+D(发送EOF),这不是我想要的。在第二个示例中,它无法编译。根据编译器:
警告:格式字符串“% [”没有关闭‘]’符号。
有什么好的解决方法吗?
scanf(..., &c)
吗? - ScriptKidd