تفاوت get با getline با getchar با getch - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تفاوت get با getline با getchar با getch

+1 امتیاز

سلام

فرق get با getline() با getchar با getch جیه ؟

اگر میشه هدر های هر کدوم رو هم بگین ؟

سوال شده آذر 2, 1392  بوسیله ی Xavi (امتیاز 627)   24 83 110
دوباره تگ گذاری شد اردیبهشت 6, 1393 بوسیله ی BlueBlade

1 پاسخ

+3 امتیاز
 
بهترین پاسخ

getchar :

برای گرفتن کاراکتر بعدی از وروی کنسول استفاده میشه .

getch :

کاربرد مثل getchar میباشد با این تفاوت که هنگام گرفتن ورودی نیازی به زدن enter نیست .

getch و کتابخانه conio جزو کتابخانه ها استاندارد c نیستن پس بهتره ازشون استفاده نشه .

مثال :

#include <stdio.h>//printf getchar
#include <conio.h>//getch
int main()
{
   printf("Enter a character : ");
   char a=getchar();
   printf("Your characte is '%c'",a);

   printf("\nEnter another charachter : ");
   a=getch();
   printf("\nThis time no need for enter to get '%c'",a);
}

روش های استاندارد c++ برای خواندن از Stream ها :

    int a;
    std::cin>>a;
    
    std::string a;
    std::cin>>a;
    
    char a;
    std::cin>>a;
    
    char a;
    a=std::cin.get();
    
    char a;
    std::cin.get(a);


    char a[100];
    std::cin.get(a,100);

    char a[60];
    std::cin.get(a,60,'b');//gereftan voroodi ta residan be character b anjam midahad
    
    char a[30];
    std::cin.getline(a,30);//mesle cin.get
    
    char a[40];
    std::cin.getline(a,40,'y');//gereftan voroodi ta residan be character y
    
    std::string str;
    std::getline(std::cin,str);//voroodi aval mitavanad az no e fstream ham bashad

 

پاسخ داده شده آذر 3, 1392 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
ویرایش شده دی 4, 1392 بوسیله ی BlueBlade
درست میگین. من شنیدم تا چند سال دیگه conio.h رو ور میدارن.
چه جایگزینی برای این تابع مناسبه ؟
همین الان هم  داخل لینوکس conio.h وجود نداره .
بجای conio  میشه از توابع سیستم عامل یا کتابخانه هایی که وجود داره  استفاده کرد .
مثلا برای لینوکس من قبلا از این استفاده می کردم : https://www.gnu.org/software/ncurses/ncurses.html
من منظورم تو MinGW بود البته. جایگزینی برای getch نیست که دقیقا مثل اون کار کنه ؟
یه نکته مهم واسه همه :
هدر های غیر استاندارد به دو دسته تقسیم میشن :
1.هدر های تحت API
2.هدر های غیر API
که دسته دوم به User made و Compiler Header تقسیم میشه.
User made ها و هدر های تحت API اگه ازشون استفاده بشه اشکال نداره.
ولی معمولا Compiler Header ها مثل conio.h و graphics.h منسوخ شده و به درد نمیخورن.
پس بهتره ازشون استفاده نکرد. مگر اینکه بدردبخور اعلام بشن.
...