求C++的一个程序(新手级)

来源:百度知道 编辑:UC知道 时间:2024/09/22 09:46:23
RT
绝对C++新手,上课不到一个月……

作业的要求是做一个程序,检查输入的信息格式是否正确然后给出相应的信息或者错误信息

比如:

正确的格式(运行程序之后)
print 5 1
如果输入的“print”正确,后面只要输入数字就算正确
如果“print"输错,或者后面的不是数字,那么程序给出错误信息并跳过剩余的input

除了”print“之外还可以有”make“, ”pick“的命令,其他都算错

要求里提到不能用getline或者任何将char转换成int的函数

非常感谢!!!
注意print与数字之间有空格,如果有一个空格那么就作为一个分割,如果有多个空格同样认为是一个分割,后面可以有多个数字,但是只要格式正确就显示正确的信息

--------------------------------
感谢回复

你可以理解成这个软件只能干三种事情,print,make,pick,其他的命令都会视为错误。只要输入的是在这三样命令里的任何一样,并且后面输入的是数字,那么就会跳出一个成功的提示,否则会显示错误

实际的要求与我说的有所不同,但是大体一致

-------------------------------
确实不难……我们没上几节课,但是STRING这部分还没提到
比如这样我输入
print 6 2
会显示success
我输入pick 15 23 643
会显示success
我输入MAKE(不同于小写的make) 2 5
会显示error
我输入make pick
也会显示error

getline不能用是作业要求……

-----------------------------
感谢 xiaowei8838的回复……
但是如果输入的数字不是2个而是多个呢?作业里面好像也提到一个End of

采用C++的流输入就可以呀
按照你的意思,不用getline,给你写了段程序:
#include <iostream>
#include <string>
using namespace std;

void getnum();

void main()
{
string input;

while (1)
{
cin>>input;
if ("print" == input || "make" == input || "pick" == input)
getnum();
else
{
cout<<"error"<<endl;
while(getchar()!='\n');
}
}
}

void getnum()
{
char temp='0';
while(1)
{
temp = getchar();
if (temp == '\n')
{
cout<<"succese"<<endl;
return;
}
else if (temp == ' ');
else if (temp<'0' || temp>'9')
{
cout<<"error"<<endl;
while(getchar()!='\n');
return;
}
}