分别读取两段字符串,当getline()在get()上边时,由于getline()读取整个一行,遇到换行符时停止,并且丢弃换行符,可以致使address不被赋予空字符串,因此其能正常读取地址字符串。
而当get()或者cin先运行时,两者不会忽略换行符,导致后续的address被赋予空字符串,无法从缓冲区输出正确地址并打印输出
源代码1:
#include <iostream>
#include<string>
int main()
{
char year[30]{};
char address[30]{};
std::cout << "Enter your year: ";
std::cin.getline(year,30);
std::cout << "Enter your address: ";
std::cin.get(address,30);
std::cout<<"Your name: "<<year<<std::endl;
std::cout<<"Your address: "<<address<<std::endl;
return 0;
}
源代码2:
#include <iostream>
#include<string>
int main()
{
char year[30]{};
char address[30]{};
std::cout << "Enter your year: ";
std::cin.get(year,30);
std::cout << "Enter your address: ";
std::cin.getline(address,30);
std::cout<<"Your name: "<<year<<std::endl;
std::cout<<"Your address: "<<address<<std::endl;
return 0;
}