代码之家  ›  专栏  ›  技术社区  ›  Denyk

将整个标准数据读入缓冲区

  •  0
  • Denyk  · 技术社区  · 6 年前

    输入如下所示:

    {
    [
    5.5
    ;
    1
    ]
    ,   [   1;  2   ]   ,[3; 4]}
    

    char *s2 = NULL;
    size_t n = 0;
    int slozZav = 0;
    int hranZav = 0;
    getline(&s2, &n, stdin);
    if(sscanf(s2, " %c [ %lf ; %lf ] , [ %lf ; %lf ] , [ %lf ; %lf ] %c", &s1, &Ax, &Ay, &Bx, &By, &Cx, &Cy, &s) == 8 && s=='}' && s1=='{' && slozZav % 2 == 0 && hranZav % 2 == 0) { ... }
    

    我用getline做的对吗?我试着用英语读它 scanf() ,但我无法将stdin复制到缓冲区。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Stephan Lechner    6 年前

    getline 读,直到它遇到一个新的行;因此,当您第一次按enter键时,它将停止。

    要读入要扫描的完整结构,请尝试:

    getdelim(&s2, &n, '}', stdin);
    

    } .