您的位置:

用C++实现字符串输入功能

一、输入字符串的方法

在C++中,我们可以使用cin和getline函数来实现输入字符串的功能。

cin函数用于标准输入流,即从键盘输入。使用cin函数输入字符串时,需要注意以下几点:

1、如果输入的字符串中含有空格,cin函数会将空格作为输入结束的标志。

2、如果输入的字符串长度超过了定义的char数组的长度,cin函数会截取前面的部分,导致后面的部分丢失,因此需要注意定义合适长度的char数组。

下面是使用cin函数输入字符串的示例代码:

<iostream>
<string>

using namespace std;

int main()
{
    char str[100];
    cin >> str;
    cout << "输入的字符串是:" << str << endl;

    return 0;
}

getline函数用于从标准输入流中获取一行字符串,包括空格在内。使用getline函数输入字符串时,需要注意以下几点:

1、可以指定getline函数的第二个参数,表示输入字符串的终止符。如果不指定,则默认为换行符。

2、如果输入的字符串长度超过了定义的string类型变量的长度,getline函数会自动调整string类型变量的长度,不会导致输入丢失。

下面是使用getline函数输入字符串的示例代码:

<iostream>
<string>

using namespace std;

int main()
{
    string str;
    getline(cin, str);
    cout << "输入的字符串是:" << str << endl;

    return 0;
}

二、从文件中输入字符串

除了从键盘输入字符串外,我们还可以从文件中输入字符串。在C++中,我们可以使用fstream库提供的类来实现文件的读取和写入。

我们先来看一下从文件中输入字符串的基本步骤:

1、打开文件,并验证是否打开成功。

2、从文件中读取字符串,存储到char数组或string类型变量中。

3、关闭文件。

下面是从文件中输入字符串的示例代码:

<iostream>
<fstream>

using namespace std;

int main()
{
    fstream fs("filename.txt");
    if (!fs.is_open())
    {
        cout << "文件打开失败" << endl;
        return 0;
    }

    char str[100];
    fs.getline(str, 100);
    cout << "读取的字符串是:" << str << endl;

    fs.close();

    return 0;
}

三、从控制台读取密码字符串

在实际开发中,我们经常需要从控制台输入密码字符串,并且不希望密码字符串在控制台上显示出来。为了解决这个问题,C++提供了getch()函数,可以实现从控制台读取密码字符串的功能。

getch()函数用于从标准输入流中读取单个字符,而不需要在控制台上显示出来。我们可以利用这个特性,依次读取密码字符串的每个字符,存储到char数组中,最后输出密码字符串时用星号代替每个字符。

下面是从控制台读取密码字符串的示例代码:

<iostream>
<conio.h>

using namespace std;

int main()
{
    char password[20];
    int i = 0;

    cout << "请输入密码:" << endl;

    while (1)
    {
        char ch = getch();
        if (ch == 13)
        {
            password[i] = '\0';
            cout << endl;
            break;
        }
        else if (ch == 8 && i > 0)
        {
            i--;
            cout << "\b \b";
        }
        else if (i < 19)
        {
            password[i] = ch;
            i++;
            cout << '*';
        }
    }

    cout << "输入的密码是:" << password << endl;

    return 0;
}