【问题标题】:load input help getline and use sscanf加载输入帮助 getline 并使用 sscanf
【发布时间】:2021-03-12 22:36:15
【问题描述】:

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);
     ...

【问题讨论】:

    标签: arrays c parsing scanf getline


    【解决方案1】:

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

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

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

    【讨论】:

    • 如果是大小为 32 的字符串,您可以使用 %31[^\n] 来限制读入 st.m_Jmeno 的数据量。
    猜你喜欢
    • 1970-01-01
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 2023-03-09
    • 1970-01-01
    • 2014-08-31
    相关资源
    最近更新 更多