什么时候应该std::cin.getline()使用?它有什么不同std::cin?
使用类型std::string来接受一个句子,用于练习(我没有在C++中使用过很多字符串)我正在检查一个字符是否是一个元音.我懂了:
for(i = 0; i <= analyse.length(); i++) {
if(analyse[i] == 'a' || analyse[i] == 'e' [..etc..]) {
...vowels++;
} else { ...
...consonants++;
}
Run Code Online (Sandbox Code Playgroud)
如果字符串是一个单词,这可以正常工作,但第二个我添加一个空格(IE:aeio aatest)它只计算第一个块并将空间计为辅音,并退出读取句子(退出for循环或东西).
空格是否计为无字符== null?或者有点奇怪std::string?,知道为什么会发生这种情况会很有帮助!
编辑:我只是通过std :: cin接受字符串,例如:
std::string analyse = "";
std::cin >> analyse;
Run Code Online (Sandbox Code Playgroud) #include<iostream.h>
#include<conio.h>
class String
{
char str[100];
public:
void input()
{
cout<<"Enter string :";
cin>>str;
}
void display()
{
cout<<str;
}
};
int main()
{
String s;
s.input();
s.display();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我在Turbo C++ 4.5中工作.代码运行正常,但它没有给出所需的输出,例如,如果我将输入作为"steve hawking",则仅显示"steve".有人可以帮忙吗?
#include <iostream>
#include <string>
using namespace std;
int main()
{
string username;
cout<< "username" ;
cin >> username;
}
Run Code Online (Sandbox Code Playgroud)
所以我很好奇这两个代码之间有什么区别,我听说它是一样的但是如果是那么为什么有两种方法可以做到呢?
#include <iostream>
#include <string>
using namespace std;
int main()
{
string username;
cout << "username" ;
getline (cin,username) ;
}
Run Code Online (Sandbox Code Playgroud)