一、输入字符串的方法
在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; }