fscanf を使用して
PIZZA CHIPS BURGERS
、行の 1 つとして含まれるテキスト ファイルを読み込もうとすると、. それらを変数に追加しようとしていますが、一度に1文字しかかかりません。
if (infile) {
while (fscanf(infile, "%c", &cit) > 0) {
printf("%c\n",cit);
PIZZA の代わりに PIZZA という単語を使用するにはどうすればよいですか?
char word[256];
if (infile)
{
while (fscanf(infile, "%255s", word) == 1)
printf("Word: %s\n", word);
}
一度に行全体、スペース、およびすべてを読み込みたい場合は、次を使用することに注意してくださいfgets()
。
char line[4096];
if (infile)
{
while (fgets(line, sizeof(line), infile) != 0)
printf("Line: %s", line);
}
注意:fgets()
行が長すぎて切り詰める必要がない限り、改行を保持するため、printf()
形式自体に改行は必要ありません。通常、またはだけを使用するよりも、fgets()
およびを使用した方が入力を制御しやすくなります。特に、ユーザーが入力した内容をすべて把握しているため、通常はより適切なエラー診断を行うことができます。必要に応じて、別の形式を試すこともできます。sscanf()
scanf()
fscanf()