4.12-13

#include<iostream>
#include<vector>
#include<array>
using namespace std;
int main()
{
cout<<"Entre a positive integer:";
unsigned int num;
cin>>num;
int *array=new int [num];
vector<int> n_array(num);
system("pause");
return 0;
}

4.12-17

#include<iostream>
#include<vector>
#include<array>
int main()
{
const int number=10;
std::vector<std::string> n_vector(number);
std::array<std::string,number> n_array;
system("pause");
return 0;
}

4.13-1

cin>>函数

输入结束条件:遇到Enter、Space、Tab键,保留Enter、Space、Tab键在缓存区

对结束符的处理 :输出时丢弃缓冲区中结束符(Enter、Space、Tab),下次直接读取缓冲区剩余的数据。

第一次读取字符串时遇到空格则停止了,将abcd读入str1,并舍弃了空格,将后面的字符串给了第二个字符串str2。

cin.get()函数:

输入结束条件:Enter键,将Enter键保存在缓存区中

对结束符处理:输出时不丢弃上次输入留在弃缓冲区中的Enter,但是可以接受空格字符(输出遗留的空格)。

cin.getline() 函数:

输入结束条件:Enter键,将Enter键不保留在缓存区,保存时将Enter键换成了“\0”保留下来

对结束符处理:输出时丢弃缓冲区中遗留的结束符Enter,同时也可以接受空格字符(输出遗留的空格)。

cin>>函数、cin.get()函数、cin.getline() 函数区别:
cin>>函数: 输出时丢弃缓冲区中结束符(Enter、Space、Tab),下次直接读取缓冲区剩余的数据。

cin.get()函数:对于字符,输出时不会丢弃缓冲区中结束符(Enter、Space、Tab);对于字符串,输出也不会丢弃缓冲区的结束符(Enter、Space、Tab);

cin.getline(str,n) 函数:对于字符串,输出不超过规定数量n时,会丢弃缓冲区的内容包括结束符Enter键。输出超过规定数量n时,会引起cin函数或者cin.getline() 函数的错误,后面的cin/cin.getline() 操作将不再执行.

注意:cin.get()函数与gets()函数在字符串时是有区别的,一个丢弃结束符,一个不丢弃结束符。

源程序:

#include<iostream>
using namespace std;
int main()
{
cout<<"What is your first name?\n";
char firstname[20];
cin.getline(firstname,20);
cout<<"What is your last name?\n";
char lastname[20];
cin.getline(lastname,20);
cout<<"What letter grade do you deserve?\n";
char grade;
cin>>grade;
cout<<"What is your age?\n";
int age;
cin>>age;

cout<<"name:"<<lastname<<","<<firstname<<endl;
cout<<"Grade:"<<char(grade+1)<<endl;
cout<<"Age:"<<age<<endl;
system("pause");
return 0;
}

4.13-2

 

string 对象和字符数组之间的主要区别在于,可以将string对象声明为简单变量,而不是数组。

getline()的原型是istream& getline ( istream &is , string &str , char delim );

其中 istream &is 表示一个输入流,譬如cin;
string&str表示把从输入流读入的字符串存放在这个字符串中
char delim表示遇到这个字符停止读入,在不设置的情况下系统默认该字符为'\n',也就是回车换行符(遇到回车停止读入)。

源程序:

#include<iostream>
#include<string>
using namespace std;
int main()
{
string name;
string dessert;
cout<<"Enter your name:\n";
getline(cin,name);
cout<<"Enter your favorite dessert:\n";
getline(cin,dessert);
cout<<"I have some delicious "<<dessert;
cout<<" for you,"<<name<<".\n";
system("pause");
return 0;
}

4.13-3

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char lastname[20];
char firstname[20];
char fullname[40];
cout<<"Enter your first name:";
cin.getline(firstname,20);
cout<<"Enter your last name:";
cin.getline(lastname,20);
strcpy(fullname,lastname);//strcpy相当于复制,把lastname复制给fullname
strcat(fullname,",");// char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。
strcat(fullname,firstname);
cout<<"Here's the information in a single string:"<<fullname<<endl;
system("pause");
return 0;
}

 4.13-4

#include<iostream>
#include<string>
using namespace std;
int main()
{
string firstname;
string lastname;
string fullname;
cout<<"Enter your first name:";
getline(cin,firstname);
cout<<"Enter your last name:";
getline(cin,lastname);

fullname.append(lastname);//把lastname连接到fullname结尾处
fullname.append(",");
fullname.append(firstname);
cout<<"Here's the information in a single string:"<<fullname<<endl;
system("pause");
return 0;
}

4.13-5

#include<iostream>
using namespace std;
struct CandyBar
{
char brand[20];
float kilometer;
int calorie;
}snack=
{
"Mocha Munch",
2.3,
350
};
int main()
{
cout<<snack.brand<<endl;
cout<<snack.kilometer<<endl;
cout<<snack.calorie<<endl;
system("pause");
return 0;
}

4.13-6

#include<iostream>
using namespace std;
struct CandyBar
{
char brand[20];
float kilometer;
int calorie;
};
int main()
{
CandyBar snack[3]=
{
{"Mocha Munch",2.3,350},
{"candy",2.1,310},
{"moon",1.7,270}
};
for(int i=0;i<=2;i++)
{
cout<<snack[i].brand<<"\t";
cout<<snack[i].kilometer<<"\t";
cout<<snack[i].calorie;
cout<<endl;
}
system("pause");
return 0;
}

4.13-7

#include<iostream>
using namespace std;
struct CandyBar
{
char name[20];
float diameter;
float kilometer;
};
int main()
{
CandyBar snack;
cout<<"Enter about information of Pizza:\n";
cout<<"Enter the name of company:";
cin>>snack.name;
cout<<"Enter the diameter:";
cin>>snack.diameter;
cout<<"Enter the kilometer:";
cin>>snack.kilometer;
cout<<endl;
cout<<"name of pizza company:"<<snack.name<<endl;
cout<<"diameter:"<<snack.diameter<<endl;
cout<<"kilometer:"<<snack.kilometer<<endl;

system("pause");
return 0;
}

4.13-8

#include<iostream>
using namespace std;
struct CandyBar
{
char name[20];
float diameter;
float kilometer;
};
int main()
{
CandyBar* snack=new CandyBar;
cout<<"Enter the diameter:";
cin>>snack->diameter;
cout<<"Enter the name of company:";
cin>>snack->name;
cout<<"Enter the kilometer:";
cin>>snack->diameter;
system("pause");
return 0;
}

4.13-9

#include<iostream>
#include<string>
using namespace std;
struct CandyBar
{
string brand;
float kilometer;
int calorie;
};
int main()
{
CandyBar* snack=new CandyBar[3];
snack[0].brand="Mocha Munch";
snack[0].kilometer=2.3;
snack[0].calorie=350;

snack[1].brand="Candy";
snack[1].kilometer=2.1;
snack[1].calorie=310;

snack[2].brand="Moon";
snack[2].kilometer=1.7;
snack[2].calorie=270;

for(int i=0;i<=2;i++)
{
cout<<snack[i].brand<<" ";
cout<<snack[i].kilometer<<" ";
cout<<snack[i].calorie<<endl;
}

system("pause");
return 0;
}

4.13-10

#include<iostream>
#include<array>
using namespace std;
int main()
{
cout<<"Enter the score of 40 yards three times:\n";
double sorce_1,sorce_2,sorce_3;
cin>>sorce_1>>sorce_2>>sorce_3;

int number=3;
double average=(sorce_1+sorce_2+sorce_3)/3;
array<double,5> sorce={sorce_1,sorce_2,sorce_3,number,average };
cout<<"The number of race:"<<sorce[3]<<endl;
cout<<"The average sorce:"<<sorce[4]<<endl;
system("pause");
return 0;
}

 posted on 2021-03-10 22:55  HuJiao粉  阅读(55)  评论(0)    收藏  举报