[英]Read whole stdin to buffer
我有換行符輸入,我需要讀取它以緩沖。 格式僅限於結構。
輸入看起來像這樣:
{
[
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復制到緩沖區。
getline
讀取直到遇到新行; 因此,它將在您第一次按Enter時停止。
要讀取要掃描的完整結構,請嘗試:
getdelim(&s2, &n, '}', stdin);
這樣,也將讀入新行,並且在讀取定界符}
之后將停止讀取。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.