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

C++/C

توسط behnamdesigner در 8 سال پیش
0 57.6k 2 8 سال پیش
behnamdesigner php-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();
}
0

ممنون تشکر مرسی

خوش آمدید

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