0

関連する番号のテキスト ファイルがあります。
1 2 2
3 2 1
3 4 3

各行は個別の情報であるため、一度に1行ずつ読み取ってから3つの数字に分けようとしていますが、sscanfは期待どおりに機能しません。

char s[5];
char e[5];
char line[100];
int d;

fgets(line, sizeof(line), inFile);
sscanf(line, "%s %s %d", s, e, d);

fgets yields の後に printf を入れる:
1 2 2

しかし、sscanfの後、変数「s」と「e」はnullですが、「d」は乱数であり、それがどこから来たのかさえわかりません。
私が何を間違っているのかわからないので、どんな助けでも大歓迎です。

4

1 に答える 1

3

変数宣言を確認する必要がありますが、d の場合は間違いなくアドレスを渡す必要があります。

sscanf(line, "%s %s %d", s, e, &d);

あなたのコメントから、文字列を正しく宣言していないようです。次のようなものが必要です。

char s[10], e[10];

予想される文字列の大きさによって異なります。ただし、サイズを指定する必要があります。line変数も同様に宣言する必要があります。

于 2010-03-24T12:53:27.793 に答える