これは教授から入手したコードですが、while ループに到達するため、完全には理解できません。誰かが私に次のことを説明できますか:
while(fscanf(pin, "%[^\n]", line) != EOF)
fscanf(pin, "%1[\n]", dummy);
line[0] = '\0';
ちなみに、コピーするテキストファイルには次のものが含まれています。
ライン1
(スペース)
2行目
(スペース)
(スペース)
3号線
(スペース)
(スペース)
(スペース)
4号線
#include <stdio.h>
#define LNAME 31
#define LLINE 81
int main(void)
{
FILE *pin, *pout;
char name_in[LNAME], name_out[LNAME], line[LLINE];
char dummy[LLINE];
do
{
printf("Enter name of input file : ");
scanf("%30s", name_in);
pin = fopen(name_in, "r");
} while(pin == NULL);
do
{
printf("Enter name of output file: ");
scanf("%30s", name_out);
pout = fopen(name_out, "w");
} while(pout == NULL);
while(fscanf(pin, "%[^\n]", line) != EOF)
{
fprintf(pout, "%s\n", line); /*In output file */
printf("%s\n", line); /*Echo on screen */
fscanf(pin, "%1[\n]", dummy); /*skip over '\n' */
line[0] = '\0'; /*important, when next line empty!!! */
}
fclose(pin);
fclose(pout);
printf("\n\n");
return 0;
}