while (getline(cin, str1), getline(cin, str2))
时间: 2023-10-22 08:32:55 浏览: 71
这是什么意思?
这是一个 C++ 中的输入格式,使用了逗号运算符和 getline 函数。它的作用是在读取每一行时,同时读取两个字符串 str1 和 str2,直到输入结束。其中,getline 函数用于读取一行输入,解析完一行后返回 true,否则返回 false。在这个语法中,第一个 getline 函数读取 str1,第二个 getline 函数读取 str2。在读取时,需要输入两个字符串并用回车键分隔。
相关问题
getline(cin,x)
`getline(cin, x)`是C++中的一个函数,用于从标准输入流中读取一行字符串并存储在变量x中。该函数会读取一行输入,直到遇到换行符为止,并将换行符从输入流中删除。下面是两个使用getline()函数的例子:
1. 从标准输入流中读取多行字符串并输出
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
while (getline(cin, str)) {
cout << str << endl;
}
return 0;
}
```
该程序会不断从标准输入流中读取多行字符串,并将其输出到标准输出流中,直到遇到EOF(文件结束符)为止。
2. 从标准输入流中读取一行字符串并指定分隔符
```cpp
#include <iostream>
using namespace std;
int main() {
char buf[20];
char a = 'q';
cin.getline(buf, 10, a);
cout << buf << endl;
return 0;
}
```
该程序会从标准输入流中读取一行字符串,并将其存储在buf数组中,直到读取到字符'a'为止。注意,第二个参数指定了buf数组的大小,第三个参数指定了分隔符。
用C++编写函数,实现2个字符串按照词典顺序的比较,已知一部分函数如下#include <iostream> using namespace std; int stringcmp(char *s1, char *s2); int main() { char *str1, *str2; str1=new char[81]; str2=new char[81]; cin.getline(str1,80); cin.getline(str2,80); int cmp=stringcmp(str1, str2); cout<<cmp; delete []str1; delete []str2; return 0; }
以下是用C++编写的函数,实现两个字符串按照词典顺序的比较,同时包含给定的 stringcmp 函数:
```cpp
#include <iostream>
using namespace std;
int stringcmp(char *s1, char *s2) {
int i = 0;
while (s1[i] != '\0' && s2[i] != '\0') {
if (s1[i] < s2[i]) {
return -1;
}
else if (s1[i] > s2[i]) {
return 1;
}
i++;
}
if (s1[i] == '\0' && s2[i] == '\0') {
return 0;
}
else if (s1[i] == '\0') {
return -1;
}
else {
return 1;
}
}
int main() {
char *str1, *str2;
str1 = new char[81];
str2 = new char[81];
cin.getline(str1, 80);
cin.getline(str2, 80);
int cmp = stringcmp(str1, str2);
cout << cmp;
delete[] str1;
delete[] str2;
return 0;
}
```
在上面的代码中,我们首先定义了一个 stringcmp 函数,该函数与前面的函数实现类似,只是接收的参数类型由 std::string 变为了 char*。
在主函数中,我们首先定义了两个 char* 类型的指针 str1 和 str2,然后分别使用 new 运算符分配了 81 个字节的内存空间,用于存储两个字符串。
接下来,我们使用 cin.getline 函数从标准输入中读取两个字符串,并调用 stringcmp 函数比较它们的大小,最后输出比较结果。
最后,我们使用 delete[] 运算符释放 str1 和 str2 指向的内存空间,避免内存泄漏。
相关推荐
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)