مشکل در سی پلاس پلاس: برنامه خط آخر رو دو بار نمایش میده!

C++/C

توسط behnamdesigner در 6 سال پیش
0 814 2 6 سال پیش
behnamdesignerphp-sec
0

سلام به همگی یه فایل متنی دارم که 121 لاین داره و برنامه باید کل فایل رو بخونه و نمایش بده ، برنامه درسته اما عدد 121 رو دوبار نمایش میده!

کسی میدونه مشکل این کد کجاست؟

#include <stdio.h>
#include <conio.h>
void main()
{
 FILE * myfile = fopen("names.txt", "r");
char line[100];
if (myfile==NULL)printf("Error opening file :(");
else{
	while( ! feof(myfile)) {
	fgets(line, sizeof(line), myfile);
	fputs(line, stdout);
	}
	fclose(myfile);
}
getch();
}
1

سلام میتونی در هر مرحله قبل از نمایش اطلاعات چک کنی به آخر رسیده یا نه ببین:

#include <stdio.h>
#include <conio.h>
void main()
{
  FILE * myfile = fopen("names.txt", "r");
  char line[100];
   if (myfile==NULL)printf("Error opening file :(");
   else{
			while( ! feof(myfile)) {
         fgets(line, sizeof(line), myfile);
         if (feof(myfile))break;
         fputs(line, stdout);
			}
			fclose(myfile);

  		}
      getch();
}

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.

لطفا ابتدا لاگین کنید