【小白到大牛之路】交換機後臺管理之用戶輸入

項目需求

用戶登錄時,需要輸入用戶名和密碼。

項目實現

#include <stdio.h>

int main(void) {
// 定義變量,用來表示用戶名和密碼
char name;
int password;

// 輸入用戶名和密碼
printf("請輸入用戶名:");
scanf("%c", &name);
printf("請輸入密碼:");
scanf("%d", &password);

/*
// 打印登錄菜單
printf("---交換機後臺管理---\n");
printf("1. 登錄\n");
printf("2. 創建賬號\n");
printf("3. 退出\n");
*/

return 0;

}

項目精講

1.C語言的數據類型

在C語言中,任何數據都有一個確定的類型。
C語言,是一種“強類型”語言。

2.變量

變量是什麼

變量,不是數學中的變量。
變量,是一個內存中的一塊存儲空間,即一小塊內存。
【小白到大牛之路】交換機後臺管理之用戶輸入

爲什麼要使用變量
程序在運行時,需要保存很多內容常常變化的數據。
比如,射擊類遊戲不斷變化的“分數”。

內存的存儲單位-“字節”
內存的記本存儲單位,是字節。
一個字節,包含8位二進制位。

變量名的命名規範
只能包含3種字符(數字、大/小寫字母,下劃線)
不能以數字開頭(即,只能以字母或下劃線開頭)
不能和“關鍵字”同名(c語言內部已經使用的“名稱”),比如類型名int

變量名的最大長度,C語言沒有規定。
最大長度限制,取決於編譯器,一般都在32以上。

變量名,最好“顧名思義”,不用使用漢語拼英!
比如:用name表示姓名,用power表示功率。

變量命令的風格:
int student_age;
int studentAge;


3.常用的數據類型

字符類型char
一個字節。
用來存儲小範圍的整數(-128 ~ 127),和“字符”(所有ASCII字符,128個)。

char a = 100;
char b = ‘a’;

整數類型int
4個字節
用來存儲整數,範圍:- (2的31次方) ~ 2的31次方-1

長整形long
long 也就是 long int
用來存儲整數。
在32位系統上,佔4個字節,和int相同
在64位系統上,佔8個字節。

長長整形long long
用來存儲整數。
8字節。

float類型(單精度浮點類型)
用來存儲帶小數部分的數據。
4個字節

表示方式:按科學記數法存儲,也就是需要存儲“尾數”和“指數”
float x = 1.75E5;
//1.75E5就是1.75乘以10的5次方,只需保存尾數(1.75)和指數(5)
float y = 1.123456789;
//精度只能取值到 1.1234568, 在第7位(整數部分不算)是四捨五入後的值。

表示範圍:-3.410^38~+3.410^38 (不需記憶)
精度:最長7位有效數字(是指7位10進制位)

double類型(雙精度浮點類型)

用來存儲帶小數部分的數據。
8個字節

表示範圍:-1.710^308~1.710^308(不需記憶)
精度:最長16位有效數字(是指16位10進制位)


4.變量的定義

實例:
int x ; //定義了一個變量,變量名是x, 屬於int類型。
//注意,此時還沒有確定的值
int y = 100; //定義了一個int類型變量,變量名是y, 變量的值是100

理解:
變量保存在內存中。
變量是一個“盒子”
變量名是這個盒子的名稱
變量的值,是盒子內存儲的物品
【小白到大牛之路】交換機後臺管理之用戶輸入
語法:
變量類型 變量名;

5.使用scanf輸入數據

輸入機制
空白字符有:空格,製表符(\t), 回車符

char變量的輸入
scanf("%c", &c); //輸入 100 ,實際只讀了字符1
printf("%c\n", c); //輸出 1
printf("%d\n", c); //輸出49, 字符'1'的ASCII值就是49

int變量的輸入
int a;
scanf("%d", &a); //輸入100
printf("a=%d\n", a); //輸出a=100
scanf("%d", &a); //輸入a, 不是整數,輸入失敗!a依舊保持原來的值
printf("a=%d\n", a); //輸出a=100

char變量使用%d輸入[ERROR]
char a, b;
scanf("%d", &a); //輸入 256 ,按4個字節存儲,第2個字節保存到b變量中!
printf("a=%d,b=%d\n", a, b); //輸出a=0,b=1

float變量的輸入
scanf("%f", &x); //輸入3.14
printf("x=%f", x); //輸出 x=3.140000

double變量的輸入
scanf("%lf", &x); //輸入3.14
printf("x=%f", x); //輸出 x=3.140000
printf("x=%lf", x); //輸出 x=3.140000


輸入double類型變量的值, 必須使用lf 而不是f, 否則輸入失敗。
輸出double類型變量的值,則可以使用lf或者f, 沒有區別。


scanf注意:
1.當使用%s讀取字符串串時,遇到空白字符(空格、製表符,回車符)就結束
2.使用%c讀取字符時,任何字符都能讀取,但只讀一個
3.使用%d,%f,%lf 讀取nt , float, double類型數據時,會自動轉換成對應數據,
但是如果遇到其他字符(比如a),就會讀取失敗

6.char數據類型的其他輸入輸出函數


getchar
char c;
c = getchar(); //輸入一個字符
printf("c=%c\n", c);


putchar
char c = 'a';
putchar(c); //輸出1個字符, printf(“%c”, c);


getc
char c;
c = getc(stdin); //輸入一個字符, stdin表示“標準輸入設備”,默認是鍵盤
printf("c=%c\n", c);


putc
char c = 'b';
putc(c, stdout); //輸出1個字符

項目練習

1.獨立實現該項目。
2.讓用戶輸入一個圓的半徑,然後輸出這個圓的面積和周長。
3.讓用戶輸入一個小寫字母,然後輸出對應的大寫字母。

項目討論

該項目存在的問題:
1.用戶名,只能輸入一個字符,不能接收很長的用戶名。
2.密碼很可能不是整數,很可能包含字母和數字。
密碼不能隱藏,都回顯出來了,不安全。(在講循環時再解決)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章