Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何终止'\n';对于std::cin.get()_C++_Function - Fatal编程技术网

C++ 如何终止'\n';对于std::cin.get()

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

我想知道当我执行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[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();