C ++基础 | 用户输入之cin函数的正规使用_4

目录

用户输入

字符输入

更多字符串

快速掌握C ++ 


用户输入

在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;
}

代码是最为耐心、最能忍耐和最令人愉快的伙伴,在任何艰难困苦的时刻,它都不会抛弃你。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值