C++ 如何在使用getch后将一个字符串连接到另一个字符串的末尾

C++ 如何在使用getch后将一个字符串连接到另一个字符串的末尾,c++,string,getch,conio,C++,String,Getch,Conio,对于此代码: #include <iostream> #include <string> #include <conio.h> int main() { std::string a; char c{}; while (c != '\r') { c = getch(); a += c; } a += "xyz"; std::cout << a; } 输入:12

对于此代码:

#include <iostream>
#include <string>
#include <conio.h>

int main()
{
    std::string a;
    char c{};
    while (c != '\r')
    {
        c = getch();
        a += c;
    }
    a += "xyz";
    std::cout << a;
}
输入:12345,然后输入键

输出:xyz45

我该如何阻止这种情况发生

所需输出:12345xyz

您需要避免向字符串中添加\r字符,例如:

while ((c = getch()) != '\r')
    a += c;
您需要避免向字符串中添加\r字符,例如:

while ((c = getch()) != '\r')
    a += c;

想想c=getch返回'\r'字符后会发生什么。想想c=getch返回'\r'字符后会发生什么。