# Native Code > برنامه نویسی با C > برنامه نویسی با زبان C و ++C >  خطای getline was not declared in this scope

## karbarshj

سلام میخواستم خط به خط از دو فایل رو بخونم و این دو خط رو باهم مقایسه کنم ولی وقتی از کامپایلر GCC استفاده میکنم خطای getline was not declared in this scope رو میده البته نمیدونم کدی که نوشتم درسته یا نه.
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>

int main(void)
{   
    FILE *fp1,*fp2;
    char *line = NULL;
    size_t len = 0;
    char arr1[60];
    char arr2[60];
    fp1=fopen("fname1.txt", "r");
    fp2=fopen("fname2.txt", "r");
     while(!feof(fp1)& !feof(fp2))
       {  arr1=getline(&line,&len,fp1);
              printf("%s",arr1);
          arr2=getline(&line,&len,fp2);
              printf("%s",arr2);
              if(arr1!=arr2)
                  printf("not Equal");
              continue;
        }
    fclose(fp1);
    fclose(fp2);
    return 0;
   
}

  تابع getline جز توابع کتابخانه ای C نیست؟
راه دیگه ای به جز این تابع وجود داره؟ البته می خوام مراجعه به فایل برای خوندن کامل یه خط باشه نه به صورت رشته ای یا کاراکتری

----------


## parvizwpf

معمولا به اینصورت استفاده میشه :
#include <fstream>
#include <string>

int main() 
{ 
    std::ifstream file("Read.txt");
    std::string str; 
    while (std::getline(file, str))
    {
        // Process str
    }
}

----------


## karbarshj

> معمولا به اینصورت استفاده میشه :
> #include <fstream>
> #include <string>
> 
> int main() 
> { 
>     std::ifstream file("Read.txt");
>     std::string str; 
>     while (std::getline(file, str))
> ...


این به زبان C++‎‎‎ هست
من زبان سی می خوام
فکر کنم باید چیزی اضافه کنم تا بتونم از این تابع استفاده کنم!!!!!

----------


## m.r226

> معمولا به اینصورت استفاده میشه :


فک کنم ایشون صرفا میخوان با C کد بزنن. حداقل کدشون که تماما این رو میگه.

-D_GNU_SOURCE رو به کامپایلر پاس بده. یه تابع افزونه ی gcc هست.
یه مشکل دیگه این میتونه باشه که GLIBC شما این تابع رو نداره. بهتره یه grep روی /usr/include/stdio.h بزنی ببینی هست یا نه.

----------


## karbarshj

> فک کنم ایشون صرفا میخوان با C کد بزنن. حداقل کدشون که تماما این رو میگه.
> 
> -D_GNU_SOURCE رو به کامپایلر پاس بده. یه تابع افزونه ی gcc هست.
> یه مشکل دیگه این میتونه باشه که GLIBC شما این تابع رو نداره. بهتره یه grep روی /usr/include/stdio.h بزنی ببینی هست یا نه.


دقیقا می خوام فقط با سی کد بزنم
ممنون بابت راهنماییتون قبلا چک کردم نبود
ولی توی اینترنت خیلی دیدم از این تابع استفاده میشه ولی چه جوری نمیدونم.

----------


## mirage0411

این تابع گویا تو کتابخونه استاندارد سی نیست . تو این لینک یه توضیحاتی داده
https://stackoverflow.com/questions/...o-getline-in-c

----------


## parvizwpf

https://www.phanderson.com/files/file_read.html

----------

