c語言輸入函式getchar&fgets&scanf&scanf_s
//a)getchar:在鍵盤上輸入一個ASCII碼的文字,返回值得到的是一個數值,
//c=getchar等價於scanf("%c",&c);在第一次執行時時阻塞,並等待輸入。
//如果下一次輸入緩衝中有剩餘還未提取的輸入資料,將不阻塞直接提取那些剩餘的資料;
//b)fflush(stdin)可以清除掉前面輸入緩衝中剩餘的資料,因此經常在getchar函式之前使用這個函式;
//fflush(stdin)對vs2013以前的版本管用,對vs2015不起作用,替代的方法是while ((n1 = getchar()) != '\n' && n1!= EOF);。
//c)gets;gets(s)等價於scanf("%s",&s);gets在vs2015中沒有這個函式。
//fgets的引數是 變數,變數的大小+1,檔案流 stdin是表示從螢幕輸入。
//d)scanf是一個綜合性格式化輸入的函式,可以通過控制字元串同時輸入多個不同型別的變數或常量的數值。
//e)scanf_s是避免輸入字串或字元越界的安全版本的輸入函式,主要在%s和%c的控制符上要對緩衝區的大小代入。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
int main(int argc, char** argv)
{
char s1[5];
//wchar_t wc, ws[5];
scanf_s("%s", s1, 6);//這裡的6也不能控制輸入多於5的字元輸入,多於5個輸入得到的結果是空。
printf("%s",s1);
char c1[5];
fgets(c1, 6,stdin);
printf("%s",c1);
//int n = getchar();//輸入a得到的是97
char n1;
scanf("%c", &n1);
printf("%d\n",n1);//97
printf("%c\n", n1);//a
//fflush(stdin);
//scanf("%*[^\n]");
while ((n1 = getchar()) != '\n' && n1!= EOF);//可以清除緩衝區中的資料\n
//char n1;
scanf("%c", &n1);//輸入a得到的是
printf("%d\n", n1);//97
printf("%c\n", n1);//a
return 0;
}