分别用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;
}
哪里不对,麻烦指出.谢谢
#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;
}
string 跟 char*
没有任何的区别.
只不过你用char*接受输入的时候需要设定array size。
你可以动态定义也可以静态。
你的第一个输入,在名字之后有一个ZZ,我不知道那是什么东西。按理说getline默认的delimeter是一个\n。如果你newline,他就会结束exe那行getline code。
第二个是没有什么问题的,唯一的问题可能是只接受一个20char的array。
直接从cin接受input 和getline没什么太大区别。
cout << "....";
cin >> str1;
cout << "...";
cin >> str2;
cout << "..." << str1 << "..." << str2 << "...\n";