を持っています、は、私は次の行を持っているC
*"1 $This is an open field west of a white house, with a boarded front door.$ 2 -1 -1 -1"*
6つのSTR内の値があります:南部屋番号、説明、北、東、西
は、 ----「$」私は最初の2つの要素のためのsscanfを正常に使用している
記述構造体のvariabl内入力するべきではありません
sscanf(line, "%d",&room[count].room_number);
sscanf(line, "%*[^$]%*c%[^$]s", room[count].description);
北、南、東、西の値を取得するのに問題があります。
"%*[^$]%*[^$] %d"
strからnorth値(2になるはずです)を取得するための適切な区切り文字は、
? &room [count] .room_number、room [count] .description、&room [count] .north、&room(sscanf(行)、%d%d%d%d% {/ *成功* /} else {/ *不良行* /} '(' char記述[100];と仮定して、 ')? –
'sscanf'はあなたの行の位置を追跡しません。一度にすべてを読んだり、異なる位置で 'sscanf'を起動したりする必要があります。 '%['と '%s'は2つの異なる指定子でもあり、'%[^ $] s'は最後に 's 'を期待します。 – aragaer
@aragaer '"%n "'は行の位置を追跡します。 – chux