2

文字列の使い方を学び始めましたが、概念全体について少し混乱しています。文字列を含むファイルから単語ごとに読み取ろうとしています。

ファイルは次のとおりです。

Row, row, row your boat,
Gently down the stream.
Merrily, merrily, merrily, merrily,
Life is but a dream. 

私のアプローチは使用することでした

char hold[25];

//  Statement
while(fscanf(fpRow, "%s", hold) != EOF)
    printf("%s %d\n", hold, strlen(hold));

したがって、私の仕事は、各文字列を読み取り、すべてを除外することです。ファイルで。これを行うには、%s の代わりに %[^,.] を使用する方法が正しいでしょうか? しかし、私がこのアプローチを試みたとき、私の文字列はファイルの最初の単語を読みたいだけで、ループは決して終了しません。誰かが私が間違っていることを説明できますか? さらに、fscanf と fgets の間の重要性は何ですか? ありがとう

    while(fscanf(fpRow, "%24[^,.\n ]", hold) != EOF)
{
    fscanf(fpRow, "%*c", hold);
    printf("%s %d\n", hold, strlen(hold));
}
4

1 に答える 1