abc罗大侠
2016-03-21 15:51
采纳率: 86.4%
浏览 1.4k

c++简单问题,代码清晰,求解!

分别用char数组和string类型编写代码,使他们输出相同。


#include<iostream>
#include<string>
int main()
{
    using namespace std;
    string name;
    string dessert;

    cout << "Enter your name:\n";
    getline(cin,name);
    cout << "Enter your favorite desseert:\n";
    getline(cin,dessert);
    cout << "I have some delicious " << dessert;
    cout << " for you," << name << ".\n";
    return 0;
}

图片说明

#include<iostream>
#include<string>
int main()
{
    using namespace std;
    const int AirSize = 20;
    char name[AirSize];
    char dessert[AirSize];

    cout << "Enter your name:\n";
    cin.getline(name,AirSize);
    cout << "Enter your favorite desseert:\n";
    cin.getline(dessert,AirSize);
    cout << "I have some delicious " << dessert;
    cout << " for you," << name << ".\n";
    return 0;
}

图片说明
哪里不对,麻烦指出.谢谢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • blownewbee 2016-03-21 16:20
    已采纳
     #include<iostream>
    #include<string>
    int main()
    {
        using namespace std;
        string name;
        name.resize(20);
        string dessert;
        dessert.resize(20);
        cout << "Enter your name:\n";
        cin.getline((char *)name.c_str(), 20);
        cout << "Enter your favorite desseert:\n";
        cin.getline((char *)dessert.c_str(), 20);
        cout << "I have some delicious " << dessert;
        cout << " for you," << name << ".\n";
        return 0;
    }
    
    点赞 评论
  • sinat_34379439 2016-03-21 19:05

    string 跟 char*
    没有任何的区别.
    只不过你用char*接受输入的时候需要设定array size。
    你可以动态定义也可以静态。

    你的第一个输入,在名字之后有一个ZZ,我不知道那是什么东西。按理说getline默认的delimeter是一个\n。如果你newline,他就会结束exe那行getline code。
    第二个是没有什么问题的,唯一的问题可能是只接受一个20char的array。

    直接从cin接受input 和getline没什么太大区别。

    点赞 评论
  • sinat_34379439 2016-03-21 19:08

    cout << "....";
    cin >> str1;
    cout << "...";
    cin >> str2;

    cout << "..." << str1 << "..." << str2 << "...\n";

    
    
    
    
    点赞 评论

相关推荐 更多相似问题