C++ 如何终止'\n';对于std::cin.get()
我想知道当我执行cin.get()时,如何去掉“\n”。例如:C++ 如何终止'\n';对于std::cin.get(),c++,function,C++,Function,我想知道当我执行cin.get()时,如何去掉“\n”。例如: #include <iostream> int main() { std::cout << "How many pieces of c: "; struct c{ std::string name; int val; }; int amount; std::cin >> amount; c * c1 = new c
#include <iostream>
int main() {
std::cout << "How many pieces of c: ";
struct c{
std::string name;
int val;
};
int amount;
std::cin >> amount;
c * c1 = new c[amount];
std::cin.get();
for(int i = 0; i < amount; i++){
std::cout << "C Number " << i + 1 << ":" << std::endl;
std::cout << "Please enter the name: ";
c1[i].name = std::cin.get();
std::cout << "Please enter the val: ";
std::cin >> c1[i].val;
std::cin.get();
}
return 0;
}
#包括
int main(){
std::cout>数量;
c*c1=新的c[金额];
std::cin.get();
对于(int i=0;i 要读取int,请尝试使用getline和stringstream:
std::string input(5, '\0');
int number;
std::getline(std::cin, input);
std::stringstream sstrm(input);
sstrm >> number;
对于名称:您可以直接使用getline
std::string name(30, '\0');
std::getline(std::cin, name);
我不知道为什么您使用了get()
而不是运算符>
,就像您在两行之后所做的那样。get()
只读取一个字符-这意味着,只有您键入的第一个字符被保存为名称。其他所有字符都被读取(很可能未成功)进入val
,然后新行字符被最后的get()
消化,正如您所希望的那样,请参见和
c1[i].name = std::cin.get();