W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
基本輸入輸出包括
我們已經(jīng)使用了printf和所述printfn功能寫(xiě)入到控制臺(tái)。在本節(jié)中,我們將看看F#的printf的模塊的詳細(xì)信息。
除了上述功能,F(xiàn)#的Core.Printf模塊具有使用%標(biāo)記用作占位符用于打印和格式化各種其它方法。下表顯示了簡(jiǎn)要描述的方法。
值 | 描述 |
---|---|
bprintf : StringBuilder → BuilderFormat<'T> → 'T | 打印到一個(gè)StringBuilder。 |
eprintf : TextWriterFormat<'T> → 'T | 打印格式化輸出到stderr。 |
eprintfn : TextWriterFormat<'T> → 'T | 打印格式化輸出到stderr,增加一個(gè)換行符。 |
failwithf : StringFormat<'T,'Result> → 'T | 打印到一個(gè)字符串緩沖區(qū),提高與給定結(jié)果的異常。 |
fprintf : TextWriter → TextWriterFormat<'T> → 'T | 打印到一個(gè)文本作家。 |
fprintfn : TextWriter → TextWriterFormat<'T> → 'T | 打印到文本編寫(xiě),添加一個(gè)換行符。 |
kbprintf : (unit → 'Result) → StringBuilder → BuilderFormat<'T,'Result> → 'T | 就像bprintf一樣,但是調(diào)用指定的函數(shù)來(lái)生成結(jié)果。 |
kfprintf : (unit → 'Result) → TextWriter → TextWriterFormat<'T,'Result> → 'T | 就像fprintf,但是調(diào)用指定的函數(shù)來(lái)生成結(jié)果。 |
kprintf : (string → 'Result) → StringFormat<'T,'Result> → 'T | 如printf,而是調(diào)用指定的函數(shù)生成的結(jié)果。例如,這些讓印刷力的沖洗后的所有輸出已輸入到信道,而不是之前。 |
ksprintf : (string → 'Result) → StringFormat<'T,'Result> → 'T | 像sprintf一樣,但調(diào)用指定的函數(shù)來(lái)生成結(jié)果。 |
printf : TextWriterFormat<'T> → 'T | 打印格式化輸出到標(biāo)準(zhǔn)輸出。 |
printfn : TextWriterFormat<'T> → 'T | 打印格式化輸出到標(biāo)準(zhǔn)輸出,增加一個(gè)換行符。 |
sprintf : StringFormat<'T> → 'T | 打印到一個(gè)字符串使用內(nèi)部字符串緩沖區(qū)并返回結(jié)果為一個(gè)字符串。 |
格式規(guī)范用來(lái)格式化輸入或輸出,可根據(jù)程序員的需要。
這些都是標(biāo)志%顯示格式的占位符的字符串。
格式占位符的語(yǔ)法是
%[flags][width][.precision][type]
該類(lèi)型被解釋為
類(lèi)型 | 描述 |
---|---|
%b | 格式化為bool,格式為true或false。 |
%C | 格式化字符。 |
%S | 格式化一個(gè)字符串,格式為其內(nèi)容,而不解釋任何轉(zhuǎn)義字符。 |
%D,%I | 格式格式化為十進(jìn)制整數(shù)任何基本的整數(shù)類(lèi)型,如果基本的整數(shù)類(lèi)型的簽署。 |
%U | 格式化格式化為一個(gè)無(wú)符號(hào)十進(jìn)制整數(shù)任何基本的整數(shù)類(lèi)型。 |
%X | 格式格式化為無(wú)符號(hào)十六進(jìn)制整數(shù)任何基本的整數(shù)類(lèi)型,使用A到F小寫(xiě)字母。 |
%X | 格式格式化為無(wú)符號(hào)十六進(jìn)制整數(shù)任何基本的整數(shù)類(lèi)型,從A到F使用大寫(xiě)字母 |
%ο | 格式化格式化為一個(gè)無(wú)符號(hào)的八進(jìn)制整數(shù)任何基本的整數(shù)類(lèi)型。 |
%E,%E,%F,%F,%G,%G | 格式化使用C風(fēng)格浮點(diǎn)格式規(guī)范格式化的任何基本浮點(diǎn)類(lèi)型(float,float32)。 |
%E,%E | 格式具有形式的符號(hào)值[ - ] d.dddde [星座] DDD其中d是一個(gè)十進(jìn)制數(shù),dddd為一個(gè)或多個(gè)十進(jìn)制數(shù)字,ddd肯定三個(gè)十進(jìn)制數(shù)字,符號(hào)為+或 - 。 |
%F | 有格式化的形式符號(hào)值[ - ] dddd.dddd,其中dddd是一個(gè)或多個(gè)十進(jìn)制數(shù)字。的小數(shù)點(diǎn)之前數(shù)量取決于數(shù)的大小,和數(shù)字的小數(shù)點(diǎn)后的數(shù)量取決于所要求的精度。 |
%G,%G | 格式化f中或電子格式打印的符號(hào)值,取其對(duì)給定值和精度更緊湊。 |
%M | 格式化一個(gè)十進(jìn)制值。 |
%O | 格式的任何值,拳擊對(duì)象,并使用其ToString方法打印。 |
%A,%+ A | 格式的任何值,印有默認(rèn)的布局設(shè)置。使用%+ A打印識(shí)別聯(lián)合的結(jié)構(gòu)與內(nèi)部和私人交涉。 |
%一個(gè) | 一般格式說(shuō)明,需要兩個(gè)參數(shù)。第一個(gè)參數(shù)是一個(gè)接受兩個(gè)參數(shù)的函數(shù):第一,適當(dāng)類(lèi)型的給定格式化函數(shù)的上下文參數(shù)(例如,一個(gè)TextWriter的),二值打印和輸出兩種或返回相應(yīng)的文本。 第二個(gè)參數(shù)是打印的特殊價(jià)值。 |
%T | 一般格式說(shuō)明符需要一個(gè)參數(shù):一個(gè)函數(shù),它接受給定格式化函數(shù)(aTextWriter)的適當(dāng)類(lèi)型的上下文參數(shù),并輸出或返回適當(dāng)?shù)奈谋尽?基本整數(shù)類(lèi)型有byte,sbyte,int16,uint16,int32,uint32,int64,uint64,nativeint和unativeint。 基本浮點(diǎn)類(lèi)型是float和float32。 |
width是可選參數(shù)。它是一個(gè)整數(shù),指示結(jié)果的最小寬度。例如,%5D打印帶有5個(gè)字符至少有空格的整數(shù)。
有效flags在下表中描述
值 | 描述 |
---|---|
0 | 指定要添加零而不是空格來(lái)彌補(bǔ)所需的寬度。 |
- | 指定要左對(duì)齊指定寬度內(nèi)的結(jié)果。 |
+ | 指定要添加+字符如果數(shù)字為正(匹配 - 符號(hào)為負(fù)號(hào))。 |
' ' (space) | 指定要添加一個(gè)額外的空間,如果該數(shù)字為正數(shù)(匹配 - 號(hào)為負(fù)數(shù))。 |
# | 無(wú)效。 |
printf "Hello " printf "World" printfn "" printfn "Hello " printfn "World" printf "Hi, I'm %s and I'm a %s" "Rohit" "Medical Student" printfn "d: %f" 212.098f printfn "e: %f" 504.768f printfn "x: %g" 212.098f printfn "y: %g" 504.768f printfn "x: %e" 212.098f printfn "y: %e" 504.768f printfn "True: %b" true
當(dāng)你編譯和執(zhí)行程序,它產(chǎn)生以下輸出
Hello World Hello World Hi, I'm Rohit and I'm a Medical Studentd: 212.098000 e: 504.768000 x: 212.098 y: 504.768 x: 2.120980e+002 y: 5.047680e+002 True: true
這個(gè)類(lèi)是.NET框架的一部分。它代表了標(biāo)準(zhǔn)的輸入,輸出和錯(cuò)誤控制臺(tái)應(yīng)用程序流。
它提供了用于從讀出和寫(xiě)入到控制臺(tái)的各種方法。下表顯示的方法 -
方法 | 描述 |
---|---|
Beep() | 播放提示音通過(guò)控制臺(tái)揚(yáng)聲器的聲音。 |
Beep(Int32, Int32) | 播放通過(guò)控制臺(tái)揚(yáng)聲器指定的頻率和持續(xù)時(shí)間的蜂鳴聲。 |
Clear | 清除控制臺(tái)緩沖區(qū)和顯示信息對(duì)應(yīng)的控制臺(tái)窗口。 |
MoveBufferArea(Int32, Int32, Int32, Int32, Int32, Int32) | 復(fù)制屏幕緩沖區(qū)到指定目標(biāo)區(qū)域的指定源區(qū)域。 |
MoveBufferArea(Int32, Int32, Int32, Int32, Int32, Int32, Char, ConsoleColor, ConsoleColor) | 復(fù)制屏幕緩沖區(qū)到指定目標(biāo)區(qū)域的指定源區(qū)域。 |
OpenStandardError() | 收購(gòu)標(biāo)準(zhǔn)錯(cuò)誤流。 |
OpenStandardError(Int32) | 獲得的標(biāo)準(zhǔn)誤差流,它被設(shè)置為一個(gè)特定的緩沖區(qū)大小。 |
OpenStandardInput() | 獲取標(biāo)準(zhǔn)輸入流。 |
OpenStandardInput(Int32) | 獲取標(biāo)準(zhǔn)輸入流,它被設(shè)置為一個(gè)特定的緩沖區(qū)大小。 |
OpenStandardOutput() | 獲取標(biāo)準(zhǔn)輸出流。 |
OpenStandardOutput(Int32) | 獲取標(biāo)準(zhǔn)輸出流,它被設(shè)置為一個(gè)特定的緩沖區(qū)大小。 |
Read | 讀取從標(biāo)準(zhǔn)輸入流中的下一個(gè)字符。 |
ReadKey() | 獲得由用戶(hù)按下的下一個(gè)字符或功能鍵。按鍵顯示在控制臺(tái)窗口。 |
ReadKey(Boolean) | 獲得由用戶(hù)按下的下一個(gè)字符或功能鍵。按鍵可選地顯示在控制臺(tái)窗口。 |
ReadLine | 讀取字符從標(biāo)準(zhǔn)輸入流的下一行。 |
ResetColor | 設(shè)置前景色和背景色控制臺(tái)到默認(rèn)值。 |
SetBufferSize | 設(shè)置高度和屏幕緩沖區(qū)域的寬度設(shè)置為指定值。 |
SetCursorPosition | 將光標(biāo)的位置。 |
SetError | 設(shè)置錯(cuò)誤屬性設(shè)置為指定的TextWriter對(duì)象。 |
SetIn | 設(shè)置在屬性設(shè)置為指定的TextReader對(duì)象。 |
SetOut | 設(shè)置輸出屬性設(shè)置為指定的TextWriter對(duì)象。 |
SetWindowPosition | 設(shè)置相對(duì)于屏幕緩沖區(qū)的控制臺(tái)窗口的位置。 |
SetWindowSize | 設(shè)置高度和控制臺(tái)窗口的寬度為指定的值。 |
Write(Boolean) | 將指定的布爾值標(biāo)準(zhǔn)輸出流的文本表示。 |
Write(Char) | 將指定的Unicode字符值到標(biāo)準(zhǔn)輸出流。 |
Write(Char[]) | 將指定的Unicode字符數(shù)組的標(biāo)準(zhǔn)輸出流。 |
Write(Decimal) | 將指定的十進(jìn)制值到標(biāo)準(zhǔn)輸出流的文本表示。 |
Write(Double) | 將指定的雙精度浮點(diǎn)值到標(biāo)準(zhǔn)輸出流的文本表示。 |
Write(Int32) | 將指定的32位有符號(hào)整數(shù)到標(biāo)準(zhǔn)輸出流的文本表示。 |
Write(Int64) | 將指定的64位有符號(hào)整數(shù)到標(biāo)準(zhǔn)輸出流的文本表示。 |
Write(Object) | 將指定對(duì)象的標(biāo)準(zhǔn)輸出流的文本表示。 |
Write(Single) | 將指定的單精度浮點(diǎn)值到標(biāo)準(zhǔn)輸出流的文本表示。 |
Write(String) | 寫(xiě)入指定的字符串值到標(biāo)準(zhǔn)輸出流。 |
Write(UInt32) | 將指定的32位無(wú)符號(hào)整型值到標(biāo)準(zhǔn)輸出流的文本表示。 |
Write(UInt64) | 將指定的64位無(wú)符號(hào)整型值到標(biāo)準(zhǔn)輸出流的文本表示。 |
Write(String, Object) | 寫(xiě)入使用指定的格式信息,將指定對(duì)象的標(biāo)準(zhǔn)輸出流的文本表示。 |
Write(String, Object[]) | 寫(xiě)入使用指定的格式信息的指定對(duì)象數(shù)組到標(biāo)準(zhǔn)輸出流的文本表示。 |
Write(Char[], Int32, Int32) | 寫(xiě)的Unicode字符指定子數(shù)組到標(biāo)準(zhǔn)輸出流。 |
Write(String, Object, Object) | 寫(xiě)入使用指定的格式信息,將指定對(duì)象的標(biāo)準(zhǔn)輸出流的文本表示。 |
Write(String, Object, Object, Object) | 寫(xiě)入使用指定的格式信息,將指定對(duì)象的標(biāo)準(zhǔn)輸出流的文本表示。 |
Write(String, Object, Object, Object, Object) | 寫(xiě)入使用指定的格式信息指定的對(duì)象和可變長(zhǎng)度參數(shù)列表標(biāo)準(zhǔn)輸出流的文本表示。 |
WriteLine() | 寫(xiě)當(dāng)前行終止到標(biāo)準(zhǔn)輸出流。 |
WriteLine(Boolean) | 將指定布爾值的文本表示,后跟當(dāng)前行終止,標(biāo)準(zhǔn)輸出流。 |
WriteLine(Char) | 將指定的Unicode字符,后跟當(dāng)前行終止,值到標(biāo)準(zhǔn)輸出流。 |
WriteLine(Char[]) | 將指定的Unicode字符數(shù)組,后跟當(dāng)前行終止,標(biāo)準(zhǔn)輸出流。 |
WriteLine(Decimal) | 將指定十進(jìn)制值的文本表示,后跟當(dāng)前行終止,標(biāo)準(zhǔn)輸出流。 |
WriteLine(Double) | 將指定的雙精度浮點(diǎn)值的文本表示,后跟當(dāng)前行終止,標(biāo)準(zhǔn)輸出流。 |
WriteLine(Int32) | 將指定的32位有符號(hào)整數(shù)的文本表示,后跟當(dāng)前行終止,標(biāo)準(zhǔn)輸出流。 |
WriteLine(Int64) | 將指定的64位有符號(hào)整數(shù)的文本表示,后跟當(dāng)前行終止,標(biāo)準(zhǔn)輸出流。 |
WriteLine(Object) | 將指定對(duì)象的文本表示,后跟當(dāng)前行終止,標(biāo)準(zhǔn)輸出流。 |
WriteLine(Single) | 將指定的單精度浮點(diǎn)值的文本表示,后跟當(dāng)前行終止,標(biāo)準(zhǔn)輸出流。 |
WriteLine(String) | 寫(xiě)入指定的字符串值,后跟當(dāng)前行終止,標(biāo)準(zhǔn)輸出流。 |
WriteLine(UInt32) | 將指定的32位無(wú)符號(hào)整數(shù)的文本表示,后跟當(dāng)前行終止,標(biāo)準(zhǔn)輸出流。 |
WriteLine(UInt64) | 將指定的64位無(wú)符號(hào)整數(shù)的文本表示,后跟當(dāng)前行終止,標(biāo)準(zhǔn)輸出流。 |
WriteLine(String, Object) | 將指定對(duì)象的文本表示,后跟當(dāng)前行終止符,使用指定的格式信息標(biāo)準(zhǔn)輸出流。 |
WriteLine(String, Object[]) | 將指定對(duì)象數(shù)組,后跟當(dāng)前行終止符的文本表示,使用指定的格式信息標(biāo)準(zhǔn)輸出流。 |
WriteLine(Char[], Int32, Int32) | 寫(xiě)的Unicode字符指定子數(shù)組,后跟當(dāng)前行終止,標(biāo)準(zhǔn)輸出流。 |
WriteLine(String, Object, Object) | 將指定對(duì)象的文本表示,后跟當(dāng)前行終止符,使用指定的格式信息標(biāo)準(zhǔn)輸出流。 |
WriteLine(String, Object, Object, Object) | 將指定對(duì)象的文本表示,后跟當(dāng)前行終止符,使用指定的格式信息標(biāo)準(zhǔn)輸出流。 |
WriteLine(String, Object, Object, Object, Object) | 將指定對(duì)象和可變長(zhǎng)度參數(shù)列表的文本表示,后跟當(dāng)前行終止符,使用指定的格式信息標(biāo)準(zhǔn)輸出流。 |
以下示例演示從控制臺(tái)讀取和寫(xiě)入
open System let main() = Console.Write("What's your name? ") let name = Console.ReadLine() Console.Write("Hello, {0} ", name) Console.WriteLine(System.String.Format("Big Greetings from {0} and {1}", "TutorialsPoint", "Absoulte Classes")) Console.WriteLine(System.String.Format("|{0:yyyy-MMM-dd}|", System.DateTime.Now)) main()
當(dāng)你編譯和執(zhí)行程序,它產(chǎn)生以下輸出
What's your name? Kabir Hello, Kabir Big Greetings from TutorialsPoint and Absoulte Classes |2015-Jan-05|
System.IO命名空間包含了用于執(zhí)行基本I / O各種有用的類(lèi)。
它包含了允許讀取和寫(xiě)入文件和數(shù)據(jù)流,并提供基本的文件和目錄支持的類(lèi)型類(lèi)型或類(lèi)。
類(lèi)與文件系統(tǒng)的工作有用的
類(lèi)與流(字節(jié)序列)工作有用的
下表顯示了一個(gè)簡(jiǎn)要說(shuō)明命名空間提供的所有類(lèi)
類(lèi) | 描述 |
---|---|
BinaryReader | 讀取的原始數(shù)據(jù)類(lèi)型為在特定的編碼的二進(jìn)制值。 |
BinaryWriter | 以二進(jìn)制寫(xiě)入原始類(lèi)型到一個(gè)流,并支持一個(gè)特定的編碼寫(xiě)入字符串。 |
BufferedStream | 添加一個(gè)緩沖層讀取,而在另一個(gè)流寫(xiě)入操作。 |
Directory | 公開(kāi)用于創(chuàng)建,移動(dòng),并通過(guò)目錄和子目錄列舉的靜態(tài)方法。 |
DirectoryInfo | 公開(kāi)用于創(chuàng)建,移動(dòng),并通過(guò)目錄和子目錄列舉實(shí)例方法。 |
DirectoryNotFoundException | 當(dāng)一個(gè)文件或目錄的一部分,不能被發(fā)現(xiàn)時(shí)引發(fā)的異常。 |
DriveInfo | 提供了獲取信息的驅(qū)動(dòng)器上。 |
DriveNotFoundException | 嘗試訪(fǎng)問(wèn)的驅(qū)動(dòng)器或共享時(shí)所引發(fā)的異常不可用。 |
EndOfStreamException | 嘗試過(guò)去流的末尾時(shí),讀取時(shí)引發(fā)的異常。 |
ErrorEventArgs | 對(duì)于FileSystemWatcher.Error事件提供數(shù)據(jù)。 |
File | 提供在創(chuàng)建的FileStream對(duì)象的創(chuàng)建,復(fù)制,刪除,移動(dòng),和一個(gè)單一的文件的開(kāi)口靜態(tài)方法,和助劑。 |
FileFormatException | 當(dāng)輸入文件或理應(yīng)數(shù)據(jù)流以符合特定的文件格式規(guī)范,所引發(fā)的異常格式不正確。 |
FileInfo | 提供了創(chuàng)作的FileStream對(duì)象的創(chuàng)建,復(fù)制,刪除,移動(dòng)和文件的開(kāi)放性和實(shí)例方法,和艾滋病。 |
FileLoadException | 當(dāng)一個(gè)托管程序集發(fā)現(xiàn)被拋出,但無(wú)法加載的異常。 |
FileNotFoundException | 當(dāng)試圖訪(fǎng)問(wèn)磁盤(pán)出現(xiàn)故障時(shí)不存在的文件時(shí)引發(fā)的異常。 |
FileStream | 圍繞公開(kāi)的文件的碼流,支持同步和異步讀取和寫(xiě)入操作。 |
FileSystemEventArgs | 提供數(shù)據(jù)的目錄事件 - 改變,創(chuàng)建,刪除。 |
FileSystemInfo | 為雙方提供的FileInfo和DirectoryInfo的對(duì)象的基類(lèi)。 |
FileSystemWatcher | 偵聽(tīng)到文件系統(tǒng)更改通知并且當(dāng)一個(gè)目錄或文件目錄中的,變化引發(fā)事件。 |
InternalBufferOverflowException | 當(dāng)內(nèi)部緩沖區(qū)溢出拋出的異常。 |
InvalidDataException | 當(dāng)一個(gè)數(shù)據(jù)流格式無(wú)效時(shí)引發(fā)的異常。 |
IODescriptionAttribute | 設(shè)置說(shuō)明引用事件,擴(kuò)展,或財(cái)產(chǎn)時(shí),可視化設(shè)計(jì)器可以顯示。 |
IOException | 當(dāng)發(fā)生I / O錯(cuò)誤時(shí)引發(fā)的異常。 |
MemoryStream | 創(chuàng)建一個(gè)流的后備存儲(chǔ)內(nèi)存。 |
Path | 執(zhí)行對(duì)包含文件或目錄路徑信息的String實(shí)例操作。這些操作在跨平臺(tái)的方式進(jìn)行。 |
PathTooLongException | 當(dāng)一個(gè)路徑或文件名超過(guò)系統(tǒng)定義的最大長(zhǎng)度時(shí)引發(fā)的異常。 |
PipeException | 當(dāng)一個(gè)命名管道內(nèi)發(fā)生錯(cuò)誤時(shí),拋出。 |
RenamedEventArgs | 提供對(duì)更名事件數(shù)據(jù)。 |
Stream | 提供的字節(jié)的序列的通用視圖。這是一個(gè)抽象類(lèi)。 |
StreamReader | 實(shí)現(xiàn)一個(gè)TextReader的,從一個(gè)特定的編碼字節(jié)流中讀取字符。 |
StreamWriter | 實(shí)現(xiàn)了在一個(gè)特定的編碼寫(xiě)入字符到一個(gè)流的TextWriter。要瀏覽此類(lèi).NET框架的源代碼,請(qǐng)參考源。 |
StringReader | 實(shí)現(xiàn)一個(gè)的TextReader從一個(gè)字符串讀取。 |
StringWriter | 實(shí)現(xiàn)了將一個(gè)字符串寫(xiě)入信息的TextWriter的。的信息存儲(chǔ)在一個(gè)基本的StringBuilder。 |
TextReader | 表示一個(gè)閱讀器,可以讀取順序一系列字符。 |
TextWriter | 表示可以寫(xiě)一個(gè)順序的一系列字符的作家。這是一個(gè)抽象類(lèi)。 |
UnmanagedMemoryAccessor | 提供了從托管代碼非托管內(nèi)存塊的隨機(jī)訪(fǎng)問(wèn)。 |
UnmanagedMemoryStream | 提供了獲取從托管代碼非托管的內(nèi)存塊。 |
WindowsRuntimeStorageExtensions | 包含在Windows運(yùn)行時(shí)的IStorageFile和IStorageFolder接口開(kāi)發(fā)Windows Store應(yīng)用程序時(shí),擴(kuò)展方法。 |
WindowsRuntimeStreamExtensions | 包含在.NET的Windows Store應(yīng)用程序在Windows運(yùn)行時(shí)流和管理流之間進(jìn)行轉(zhuǎn)換的擴(kuò)展方法。 |
下面的示例創(chuàng)建一個(gè)名為test.txt文件,寫(xiě)有一條消息,從文件中讀取文本,并打印在控制臺(tái)上。
注:要做到這一點(diǎn)所需的代碼量是出奇的少
open System.IO // Name spaces can be opened just as modules File.WriteAllText("test.txt", "Hello There Welcome to: Tutorials Point") let msg = File.ReadAllText("test.txt") printfn "%s" msg
當(dāng)你編譯和執(zhí)行程序,它產(chǎn)生以下輸出
Hello There Welcome to: Tutorials Point
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: