C 正在读取预期模式的字符串
我想知道从符合特定模式的输入中读取字符串的可能方法。更具体地说,我想检查正确的模式 例如,如果我期望一个像“multiply 5,6”这样的命令,我想忽略空白,但要检查正确的模式,所以我想将“multiply”“5”和“6”从输入流中分离出来,以检查它们的有效性 有没有办法用scanf做到这一点?或者得到什么C 正在读取预期模式的字符串,c,input,format,C,Input,Format,我想知道从符合特定模式的输入中读取字符串的可能方法。更具体地说,我想检查正确的模式 例如,如果我期望一个像“multiply 5,6”这样的命令,我想忽略空白,但要检查正确的模式,所以我想将“multiply”“5”和“6”从输入流中分离出来,以检查它们的有效性 有没有办法用scanf做到这一点?或者得到什么 谢谢以下代码将执行您想要的操作 #include <stdio.h> int main() { int num1, num2; char operation[15];
谢谢以下代码将执行您想要的操作
#include <stdio.h>
int main()
{
int num1, num2;
char operation[15];
printf("\nPlease Enter Input: ");
scanf("%s%d ,%d",operation,&num1,&num2); // note the space before the comma
printf("\nYou entered \"%s %d,%d\"\n",operation,num1,num2);
return 0;
}
在输入的不同部分使用空格再次运行:
Please Enter Input: multiply 8 , 120
You entered "multiply 8,120"
运行此代码并尝试删除scanf中逗号前的空格,然后查看输入“乘以5,7”时会发生什么
- 注意:%s和%d自动忽略前导空格
在读取和匹配字符串方面存在无数问题。即使是
scanf
手册页本身也能提供足够的信息让你回答这部分问题。你做过任何基础研究或搜索吗?事实上,我做过搜索和研究,但无法理解答案。我刚开始学习C语言,解释还不清楚。虽然我不理解这种严厉的态度,但我认为这是一个提问和学习的地方。无论如何,谢谢你,在发布另一个问题之前,我一定会成为一名专家。这与成为专家无关。这是关于做基础研究和提出明确的问题。如果你认为scanf可以工作,那么仔细研究手册页,搜索示例并编写一些代码来尝试。最好的学习方法是尝试自己去做。如果您编写的代码不起作用,您无法理解为什么,那么请回来展示您的代码,并询问有关该代码的特定问题。事实上,你的问题的措辞并没有清楚地表明你对问题的哪一部分有困难。
Please Enter Input: multiply 8 , 120
You entered "multiply 8,120"