目录
用户输入
在C ++中,我们使用 cout 写入控制台,我们使用 cin 从控制台读取。
由于我们在前面文章已经讨论了 cout,并且我们已经在我们的许多文章中使用过它,我们现在将专注于 cin 。
让我们看一下从控制台读取用户输入的程序,该程序来自用户输入相关信息的。这是使用 cin 的程序的一个例子。
#include <iostream>
#include <string>
int main()
{
int year = 0;
int age = 0;
std::string name = " ";
//print a message to the user
std::cout<<"What year is your favorite? ";
//get the user response and assign it to the variable year
std::cin >> year;
//output response to user
std::cout<<"How interesting, your favorite year is "<<year<<"!\n";
//print a message to the user
std::cout<<"At what age did you learn to ride a bike? ";
//get the user response and assign it to the variable age
std::cin >> age;
//output response to user
std::cout<<"How interesting you learned to ride at "<<age<<"!\n";
std::cout<<"What is your name? ";
std::cin>>name;
std::cout<<"Hello "<<name<<" !\n";
return 0;
}
我们将使用 cout 提问,然后 cin 将接收答案。因此,我们将提示用户给我们他们最喜欢的一年,他们学习骑自行车的年龄,以及他们的名字。
现在运行程序,你们最喜欢的一年,输入1995,回车进入下一个问题,
当他们学会骑自行车时,输入5岁,回车进入下一个问题,
你叫什么名字?,输入Tom。回车
回车显示 Hello Tom !
现在,我们来复习一下g ++ 来编译以上代码,
g ++ main.cpp -o hello
main.cpp是我本地存放以上代码的文件,-o是输出编译好的文件,hello是编译完成的文件。现在,我将执行该程序:
./hellp
你会注意到我这样做后,效果跟我用工具的运行效果是一样的。
字符输入
所以现在,我们知道 Cin 不会检索其中有空格的字符串。 它会将空间视为输入的结尾。 我们显然需要一种输入字符串的方法。 C ++ 有一个名为 getline 的函数。
getline 的基本形式是 getline(Cin,variableName)。 这将从Cin 中检索字符,将它们存储在名为 variableName 的变量中。 它将检索所有字符,直到检测到新行 或 \ n。 这是一个如何使用 Cin 和 getline 的例子。
#include<iostream>
#include<string>
int main()
{
std::string userName;
std::cout<<"Tell me your nickname?: ";
std::getline(std::cin, userName);
std::cout<<"Hello "<<userName<<"\n";
return 0;
}
运行结果:
输入名称,回车:
再看一个例子:
#include<iostream>
#include<string>
int main()
{
std::string name1, address1, phoneNo1;
std::string name2, address2, phoneNo2;
//get user1 information
std::cout<<"User1 what is your name?\n";
std::getline(std::cin, name1);
std::cout<<"User1 what is your address?\n";
std::getline(std::cin, address1);
std::cout<<"User1 what is your phone number?\n";
std::getline(std::cin, phoneNo1);
//get user2 information
std::cout<<"User2 what is your name?\n";
std::getline(std::cin, name2);
std::cout<<"User2 what is your address?\n";
std::getline(std::cin, address2);
std::cout<<"User2 what is your phone number?\n";
std::getline(std::cin, phoneNo2);
//print information
std::cout<<"\n\n"<<name1<<"\n";
std::cout<<"\t\t"<<address1<<"\n";
std::cout<<"\t\t"<<phoneNo1<<"\n";
std::cout<<"\n\n"<<name2<<"\n";
std::cout<<"\t\t"<<address2<<"\n";
std::cout<<"\t\t"<<phoneNo2<<"\n";
return 0;
}
最后输出结果:
更多字符串
您可以找到方便的字符串输入的另一个方面,使用 getline 和 streamstring 将字符串转换为其他变量类型。
第一步是,我们需要包含流字符串库。
第二步是,我们使用 getline 从用户那里获取字符串。
第三步是,我们使用 字符串流 将 字符串变量 转换为 数字变量。
我们来看以下例子:
#include <iostream>
#include <string>
#include <sstream>
int main ()
{
std::string stringLength;
float inches = 0;
float yardage = 0;
std::cout << "Enter number of inches: ";
std::getline (std::cin,stringLength);
std::stringstream(stringLength) >> inches;
std::cout<<"You entered "<<inches<<"\n";
yardage = inches/36;
std::cout << "Yardage is " << yardage;
return 0;
}
运行结果:
输入48,回车,得到:
技术要领解析:
1。我们包含字符串流库,它是 #include <sstream>。
2。我们定义一个名为 stringLength 的字符串变量。
3。我们使用 getline 从控制台获取字符串长度的值。
4。我们使用 字符串流 将名为 stringLength 的字符串变量转换为 inches 的浮点变量(注意这里转换为 inches 变量,所以inches的值也跟 stringLength 一样)。
5。我们可以像算术运算中的任何其他浮点一样使用它。
再来看一个例子:
#include <iostream>
#include <string>
#include <sstream>
int main ()
{
std::string stringLength, stringWidth;
float length = 0;
float width = 0;
float area = 0;
std::cout << "Enter the length of the room: ";
//get the length as a string
std::getline (std::cin,stringLength);
//convert to a float
std::stringstream(stringLength) >> length;
//get the width as a string
std::cout << "Enter width: ";
std::getline (std::cin,stringWidth);
//convert to a float
std::stringstream(stringWidth) >> width;
area = length * width;
std::cout << "\nThe area of the room is: " << area << std::endl;
return 0;
}
运行结果:
输入长 和 宽,最后求出面积。
快速掌握C ++
快速熟练掌握编程语言的另一种方法是调试程序。 在下一个测验中,我给了你一个充满错误的程序。
请找到错误,以便代码正确执行。
#include "main.hpp"
int main()
{
float FTemp = 0;
float CTemp = 0;
cout << "Enter a Farenheit temperature: "<<"\n";
cin>>FTemp;
CTemp = (FTemp - 32.0) / (9.0/5.0);
cout<<"\n"<<FTemp <<" in farenheit = " <<CTemp<<" in Celcius\n";
return 0;
}
正确的示范:
#include "main.hpp"
int main ()
{
float FTemp = 0;
float CTemp = 0;
cout << "Enter a Farenheit temperature: ";
cin>>FTemp;
CTemp = (FTemp - 32.0) / (9.0/5.0);
cout << "\n"<<FTemp <<" in farenheit = " <<CTemp<<" in Celcius\n";
return 0;
}
代码是最为耐心、最能忍耐和最令人愉快的伙伴,在任何艰难困苦的时刻,它都不会抛弃你。