簡體   English   中英

讀取整個標准輸入以緩沖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM