物聯網開發筆記——嵌入式開發之Linux系統中輸入輸出

2020-12-13 樂創iot

前言

我主要是做工業自動化方面和物聯網方面的。了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學物聯網系列的開發筆記的文章。

第四節物聯網開發筆記——嵌入式開發之Linux系統中C程序的編譯與調試

第五節物聯網開發筆記——嵌入式開發之Linux系統中C語言數據類型

第六節物聯網開發筆記——嵌入式開發之Linux系統中C語言常量

第七節物聯網開發筆記——嵌入式開發之Linux系統中C語言變量

第八節物聯網開發筆記——嵌入式開發之Linux系統中C運算符

嵌入式開發學習C語言打下基礎。本節介紹《Linux系統中C語言輸入輸出》。

1 字符輸出函數的用法

C語言無I/O語句,I/O操作由函數實現。在#include <stdio.h>。

字符串輸出函數:格式:putchar(c)

參數:c為字符常量、變量或表達式

功能:把字符c輸出到顯示屏上

返回值:正常,為顯示的代碼值。

in_out/putchar.c例子:

putchar.c例子

2 格式輸出函數的用法

格式輸出函數:格式:printf(「格式控制串」, 輸出表)

功能:按指定格式向顯示器輸出數據

輸出表:要輸出的數據

格式控制串:包含兩種信息--格式說明:%[修飾符]格式字符,用於指定的輸出格式

--普通字符:原樣輸出

註:格式字符:

格式字符

in_out/printf.c例子:

printf.c例子

附加格式說明符

附加格式說明符

in_out/printf1.c例子:

printf1.c例子

in_out/printf2.c例子:

printf2.c例子

in_out/printf3.c例子:

printf3.c例子

3 字符輸入函數的用法

字符串輸入函數:格式:getchar()

功能:從鍵盤讀一字符

返回值:正常,返回讀取的代碼值。出錯或者鍵盤輸入,返回-1(ctrl d)。

in_out/getchar.c例子:

getchar.c例子
getchar.c例子

4 格式輸入函數的用法

格式:scanf(「格式控制串」, 地址表)

功能:按指定格式從鍵盤讀入數據,存入地址表指定

--存儲單元中,並按回車鍵結束

--返回值:正常,返回輸入數據個數

--地址表:變量的地址,常用取地址運算符&

格式輸入函數scanf支持的格式字符:

格式輸入函數scanf支持的格式字符

in_out/scanf.c例子:

scanf.c例子

格式輸入函數scanf支持的格式字符可以帶以下修飾符:

格式輸入函數scanf支持的格式字符可以

in_out/scanf.c 年月日例子:

scanf.c 年月日例子

修改後

修改後

in_out/scanf2.c 例子:

用「%c」格式符時,回車空格和轉義字符作為有效字符輸入

scanf2.c 例子

註:格式輸入函數,輸入數據時,遇到以下情況認為該數據結束:

遇空格,TAB或回車;遇非法輸入;遇寬度結束;

5 處理輸入函數留下垃圾

使用輸入函數可能會留下垃圾。

在in_out/scanf2.c 例子:

如回車 ASCII為10,空格為ASCII為32

方法1:用getchar()清除

in_out/scanf3.c 例子:

scanf3.c 例子

方法2:用格式串空格(「 %c」)或「%*c」來「吃掉」

in_out/scanf4.c 例子:

scanf4.c 例子
scanf4.c 例子

6 字符串輸入函數的用法

字符串輸入函數gets

格式:char *gets(char *s)

功能:從鍵盤輸入一以回車結束的字符串放入字符串數組中,並自動加』\0』。

--輸入串長度應小於字符數組維數

--與scanf函數不同,gets函數並不以空格作為字符串輸入結束的標誌。

in_out/gets.c 例子:

gets.c 例子

註:空格截止停止

7 字符串輸出函數的用法

字符串輸入函數puts

格式:int puts(const char *s)

功能:向顯示器輸出字符串(輸出完,換行)

in_out/puts.c 例子:

puts.c 例子

結果:

結果

請大家關注點讚轉發,謝謝!

相關焦點

  • 物聯網開發筆記——嵌入式開發之Linux系統中C語言分支判斷語句
    了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學物聯網系列的開發筆記的文章。
  • 物聯網開發筆記——嵌入式開發之Linux系統中C語言數據類型
    了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學物聯網系列的開發筆記的文章。
  • 物聯網開發筆記——嵌入式開發之Linux系統中C語言常量
    了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學物聯網系列的開發筆記的文章。
  • 工程師嵌入式Linux自學筆記及體會
    工程師嵌入式Linux自學筆記及體會 黃朝松 發表於 2014-10-24 10:08:10   針對初學嵌入式的廣大朋友們,以下是我在初學接觸嵌入式的過程中整理處的一些資料信息,希望能為大家有所幫助。
  • PCBA與嵌入式開發
    開發流程4.什麼是嵌入式系統(1) 嵌入式系統的基本介紹嵌入式系統應定義為:嵌入到對象體系中的專用計算機系統。嵌入性、專用性與計算機系統是嵌入式系統的三個基本要素。嵌入式開發就是指在嵌入式作業系統下進行開發,一般常用的系統有ucos,linux,android等。
  • 嵌入式及物聯網基礎實驗系統
    摘 要:針對目前高校嵌入式人才培養難度大的問題,將開源創客平臺Arduino引入嵌入式實驗教學中,研製了嵌入式及物聯網基礎實驗系統,3年的實驗教學表明:實驗系統降低了嵌入式學習的門檻和難度,在嵌入式人才培養教學過程中發揮了重要作用。
  • 物聯網和嵌入式有什麼關係?嵌入式什麼意思?
    物聯網和嵌入式有什麼關係?嵌入式什麼意思?2)系統級軟體,主要是作業系統也就是OS,以及I/O軟體如LCD、藍牙、wifi、CDMA、聲音等子系統。3)應用軟體,如基於linux的應用開發,基於Android的應用開發,基於iOS的應用開發等。
  • 學嵌入式開發難嗎_學好嵌入式開發需要多久
    如果是想進入嵌入式開發行業的人員,推薦培訓課程有:嵌入式Linux開發培訓、 嵌入式WinCE開發培訓 、linux網絡編程開發、嵌入式開發應用培訓等。      三、嵌入式作業系統   學習嵌入式系統,如linux或者wince下的編程,這些對以後做應用的編程很有幫助。應該對作業系統有所了解,這對你對硬體和軟體的理解,絕對有很大的幫助。應該把系統的管理理解一下,比如進程、線程,系統如何來分配資源的,系統如何來管理硬體等等。
  • 物聯網應用開發之C語言介紹
    物聯網是未來科技發展的趨勢之一,物聯網開發應用涉及到嵌入式開發、信息的傳輸與存取、大數據的分析、雲平臺的展現等諸多方面。在不同的過程,也可能用到不同的語言,比如C語言、Java、Python、GO、PHP等。由於在物聯網連接設備中,用於信息採集和傳輸的傳感器、電路板、物聯網IC晶片等,只擁有較小的內存和較低的處理能力,來存取相關數據。
  • vxworks嵌入式作業系統下串行設備驅動程序開發思路
    概 述 我們在基於vxworks嵌入式作業系統開發產品時,經常會根據自行設計的硬體電路開發專用的驅動程序。Vxworks下的驅動程序根據設備的不同特性,,大體可分為:char driver、serial driver、bLOCk driver、end driver、scsi driver等類型,其中以char driver最簡單,最基礎,以serial driver最常用。
  • 零基礎程式設計師想從事嵌入式開發,應該怎麼樣去學習呢?
    而物聯網這個早就不是新鮮詞彙的存在,也必然越來越火熱,而嵌入式作為物聯網核心的技術無疑是具有發展前景的技術。 1.嵌入式開發作為新人,第一C語言,有很多人自認為自己C語言很厲害,但是實際上一個從事嵌入式開發的老人,至少需要3-5年你才敢對C語言說精通。
  • 【CTO講堂】淺析工業級物聯網項目的快速開發
    2001年進入工控行業,開發了一些諸如二型計量系統、焦爐四大機車自動行走系統、LED廣告大屏顯示系統、WinCE嵌入式組態和地鐵隧道廣告通信系統等等。08年進入微軟研發集團.NET MicroFramework項目組做相關軟硬體開發,做了一些比如養牛場遠程監控,遠程醫療系統等案例。
  • 嵌入式Linux NFS 根文件系統的構建及研究
    摘要:在嵌入式Linux系統開發過程中,根文件系統是構建嵌入式Linux系統的重要組成部分。為了方便和簡化嵌入式Linux開發過程中的調試過程,主要研究了如何使用Busybox構建出基本的嵌入式Linux根文件系統,包括Busybox的配置、編譯和安裝。
  • 嵌入式軟體工程師一般都在開發什麼
    打開APP 嵌入式軟體工程師一般都在開發什麼 發表於 2019-04-10 15:22:51 在嵌入式這個行業,只要工作了幾年的同仁。
  • 嵌入式學習培訓要學多久?嵌入式學習哪些內容?
    >7、物聯網8、CotexA53 Linux平臺驅動開發9、企業實戰項目嵌入式物聯網開發之基礎階段●嵌入式驅動開發環境搭建初級●C語言語法概述>Linux多線程編程嵌入式Linux網絡編程基礎嵌入式Linux之ARM體系結構與編程階段選修 - ARM開發板基礎知識選修 - ARM彙編語言選修 - ARM硬體開發基礎
  • 一種嵌入式系統bootrom自動備份及切換技術
    引言 隨著物聯網概念的興起,嵌入式系統在社會各個領域的應用越來越廣泛。由於產品應用的場合越來越複雜,對於嵌入式產品開發就提出了新的要求,其中最明顯的表現就是嵌入式系統軟體的維護變得日益重要。
  • 十年資深嵌入式大神:教你真正好學的嵌入式開發學習路線
    想學會linux?那麼這份嵌入式linux學習路線分享給大家。 嵌入式C語言高級編程 1、C數據類型、控制語句 2、C程序結構設計、數組、函數、預處理: 3、指針及字符串操作 4、結構體、共用體、宏、枚舉 5、文件I/O操作 數據結構及算法 1、數據結構之單向鍊表、雙向鍊表 2、數據結構之隊列、棧 3、數據結構之樹、圖 4、
  • 基於嵌入式Linux的MapInfo格式地圖顯示
    而市場上實現這種功能的大部分平臺都是基於WINCE這種作業系統,可以採用EVC開發,開發流程明確,驅動支持較豐富,但總體開發成本較高。由於Linux其免費,可配置,網絡性能,MiniGUI也是輕型、高性能、高可靠性、可配置的GUI,本文採用MiniGUI在ARM-linux平臺上實現了簡單的地圖顯示功能。
  • Python在實時嵌入式系統開發中的主要應用
    Python在實時嵌入式系統開發中的主要應用 搜狐網 發表於 2020-09-23 10:55:04 由於Python有強大的社區支持,且是一款比容易入門的腳本語言
  • 【年終鉅惠】華清遠見超高性價比Linux/嵌入式/物聯網教學級開發板:FS-MP1A,持續熱銷中!50元紅包先到先得!!
    FS-MP1A開發板硬體設計,充分考慮嵌入式系統化的教學需求,既滿足嵌入式、Linux、STM32單片機、物聯網等基礎教學實驗需求,又可充分拓展聯網、人工智慧等多樣化的實訓項目。開發板裸板設計採用核心板+底板,小板結構,模塊化,靈活易擴展。同時配套顯示屏(支持RGB/MIPI屏)、500萬攝像頭、仿真器、資源擴展板等多種選配模塊。