注册 登录
编程论坛 C++教室

求助关于C++的问题

kzwcom 发布于 2008-05-31 02:00, 692 次点击
#include<iostream>
int main()
{
    using namespace std;
    char * grade=new char[26];
    const int name=20;
    char name1[name];
    char name2[name];
    char age[name];
    char * grade1;

    cout<<"What is your first name:";  
    cin.getline(name1,name);    //输入第一个名字
    cout<<"What is your last name:";
    cin.getline(name2,name);     //输入最后名字
    cout<<"What letter grade do you deserve?";
    cin.getline(grade,26);    //输入等级grade
    grade1=grade+1;
    cout<<"What is your age?";
    cin.getline(age,name);       //输入年龄
    cout<<"Name:"<<name2<<","<<name1<<endl;   //显示全名
    cout<<"Grade:"<<grade1<<endl;   //显示分配的等级
    cout<<"Age:"<<age<<endl;     //显示年龄
    system("pause");
    return 0;
}


程序需要实现输入名字,年龄和等级,等级由A,B,C。。。。排列,输入字母A后程序显示的将是A的下个字母,在这个程序里面为什么“Grade:”<<grade1这里什么都不显示,就只显示了Grade:,试过N个方法了,还是不行,如果用printf("Grade:%c\n",grade+1);就可以做到,求救求救啊。。。。

PS:在first name输入用户名,必须实现名字加空格,例如:abc dfg。之间必须加上空格,last name就只输入单个用户名,不需加空格,而What letter grade do you deserve?这里只要求输入A-Z字母,Grade:必须实现上面输入的字母的下一个字母,如果按照我这样的要求输入就会在Grade:这里什么都没显示,只显示Grade:,非常郁闷啊!

[[it] 本帖最后由 kzwcom 于 2008-5-31 11:39 编辑 [/it]]
6 回复
#2
p1s2008-05-31 08:30
运行结果:
What is your first name:abc
What is your last name:def
What letter grade do you deserve?ACD
What is your age?15
Name:def,abc
Grade:CD
Age:15

不太明白LZ的意思,所谓的下一个在上面的例子中到底应该输出什么?
#3
kzwcom2008-05-31 11:39
在first name输入用户名,必须实现名字加空格,例如:abc dfg。之间必须加上空格,last name就只输入单个用户名,不需加空格,而What letter grade do you deserve?这里只要求输入A-Z字母,Grade:必须实现上面输入的字母的下一个字母,如果按照我这样的要求输入就会在Grade:这里什么都没显示,只显示Grade:,非常郁闷啊!
#4
kzwcom2008-05-31 11:57
运行结果:
What is your first name:abc     //要求输入名字abc dfg之间存在空格
What is your last name:def
What letter grade do you deserve?ACD  //要求输入单个字母
What is your age?15
Name:def,abc
Grade:CD       //要求实现为上面输入的字母下一个
Age:15
#5
kzwcom2008-05-31 11:58
[bo][un]p1s[/un] 在 2008-5-31 08:30 的发言:[/bo]

运行结果:
What is your first name:abc
What is your last name:def
What letter grade do you deserve?ACD
What is your age?15
Name:def,abc
Grade:CD
Age:15

不太明白LZ的意思,所谓的下一个在上面的 ...


我试了你这样的输入,是可以显示出来,可是要按照我说的要求输入的话,Grade:就什么都不显示了
#6
p1s2008-05-31 17:13
#include<iostream>
int main()
{
    using namespace std;
    char * grade=new char[26];
    const int name=20;
    char name1[name];
    char name2[name];
    char age[name];
    char grade1;//这里有修改

    cout<<"What is your first name:";  
    cin.getline(name1,name);    //输入第一个名字
    cout<<"What is your last name:";
    cin.getline(name2,name);     //输入最后名字
    cout<<"What letter grade do you deserve?";
    cin.getline(grade,26);    //输入等级grade
    grade1=*grade+1;//这里有修改
    cout<<"What is your age?";
    cin.getline(age,name);       //输入年龄
    cout<<"Name:"<<name2<<","<<name1<<endl;   //显示全名
    cout<<"Grade:"<<grade1<<endl;   //显示分配的等级
    cout<<"Age:"<<age<<endl;     //显示年龄
    system("pause");
    return 0;
}

LZ再试试看,我不知道你是不是这个意思。
#7
2008-06-02 02:16
#include<iostream>
int main()
{
    using namespace std;
    //char   *grade=new char[26];
    char   grade[1];
    const int name=20;
    char name1[name];
    char name2[name];
    char age[name];
   // char  *grade1;
char c;
    cout<<"What is your first name:";  
    cin.getline(name1,name);    //输入第一个名字
    cout<<"What is your last name:";
    cin.getline(name2,name);     //输入最后名字
    cout<<"What letter grade do you deserve?";
    cin.getline(grade,26);    //输入等级grade
    c=grade[0]+1;
    cout<<"What is your age?";
    cin.getline(age,name);       //输入年龄
    cout<<"Name:"<<name2<<","<<name1<<endl;   //显示全名
  //  cout<<"Grade:"<<grade1<<endl;   //显示分配的等级
       cout<<"Grade:"<<c<<endl;   //显示分配的等级
    cout<<"Age:"<<age<<endl;     //显示年龄
    system("pause");
    return 0;
}
1