加载输入帮助 getline 并使用 sscanf

load input help getline and use sscanf

getline 读取输入并在 sscanf 的帮助下进一步修改它,如何以“某事某事”的形式在变量 st.m_Jmeno 中保留空格

while ( getline(&str, &capacity, stdin) != -1 )
    {
        sscanf(str,"%c %s %c %s", znak, st.m_Cislo,uvozovka, st.m_Jmeno);
     ...

您可以使用 %[ 模式来获取行中的所有其他内容:

sscanf(str,"%c %s %c %[^\n]", &znak, st.m_Cislo,uvozovka, &tmp, st.m_Jmeno);

请注意,这(仍然)是危险的,因为如果输入太长,它可能会溢出任一字符串缓冲区。