chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

putchar()函數(shù)詳解

麥辣雞腿堡 ? 來源:CSDN博客 ? 作者:Jambo! ? 2023-01-22 16:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

實例

1.清空緩沖區(qū)

下面一段把代碼是輸入一段密碼,并且還要用getchar()接受是否確認密碼的選項:

int main()

{

char password[20] = { 0 };

int ch = 0;

printf("輸入密碼\\n");

scanf("%s", password);

printf("請確認密碼(Y/N):");

ch = getchar();

if (ch == 'Y')

{

printf("成功\\n");

}

else

{

printf("失敗\\n");

}

return 0;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

我們輸入一端密碼后,還未輸入Y或N,代碼就自動打印“失敗”并退出運行

這其實還是scamf無法讀取回車在作祟

當(dāng)我們輸入1234567后,此時在輸入緩沖區(qū)中其實存的是:1234567\\n

scanf("%s", password);語句讀取字符串,因為它無法讀取\\n所以此時scanf只會讀取走1234567,在輸入緩沖區(qū)中還有\(zhòng)\n

所以在之后的ch = getchar();中,就會讀取\\n,不等于Y,所以會打印失敗

所以,要把緩沖中的 \\n 消化掉,也就是清空緩沖區(qū)

只要,再寫一個getchar()語句,將\\n讀取走,就可以了

代碼如下:

int main()

{

char password[20] = { 0 };

int ch = 0;

printf("輸入密碼\\n");

scanf("%s", password);

printf("請確認密碼(Y/N):");

getchar(); //清空緩沖區(qū)

ch = getchar();

if (ch == 'Y')

{

printf("成功\\n");

}

else

{

printf("失敗\\n");

}

return 0;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

運行成功

image.png

2.字符串中有空格

以下代碼是輸入一個字符串再輸出:

int main()

{

char str[20] = { 0 };

scanf("%s", str);

printf("%s", str);

return 0;

}

1

2

3

4

5

6

7

如果輸入的字符串是連續(xù)的,也就是沒有空格的,此代碼正常運行

如果輸入的字符串是有字符的,就會出現(xiàn)錯誤

image.png

錯誤的原因還是scanf無法讀取緩沖區(qū)中的空格,所以接下來要使用getchar去讀取字符串

因為輸入的一段字符串一定會是以\\n為結(jié)尾

所以在前面的while ((ch = getchar()) != 'EOF)改成while ((ch = getchar()) != '\\n')即可,只要不遇到\\n就一直讀取下去

代碼如下:

int main()

{

char str[20] = { 0 };

char ch = 0;

while ((ch = getchar()) != '\\n')

{

putchar(ch);

}

return 0;

}

1

2

3

4

5

6

7

8

9

10

運行結(jié)果:

image.png

原文鏈接:https://blog.csdn.net/weixin_64116522/article/details/127956631

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64904
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70758
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    STM32CubeIde生成的工程,使用printf函數(shù)沒有調(diào)用_write和__io_putchar函數(shù),為什么?

    (int ch) 函數(shù),發(fā)現(xiàn)沒有串口沒有輸出,使用SWD進行debug,并對syscalls.c中的_write函數(shù)以及重寫的io_putchar函數(shù)打了斷點,結(jié)果printf執(zhí)行后,
    發(fā)表于 05-24 06:13

    重定向了fputc及putchar函數(shù),但printf沒有輸出,為什么?

    重定向了fputc及putchar函數(shù),但printf沒有輸出 刪除了drivers/drv_uart.c drv_uart.h 刪除了文件rt-thread\\components
    發(fā)表于 07-18 07:44

    是否可以在調(diào)試模式下使用''printf''或''putchar''函數(shù)

    大家好, 關(guān)于ST VD和STM8的一個小問題。是否可以在調(diào)試模式下使用''printf''或''putchar''函數(shù)在控制臺中顯示消息或類似的東西? (我的意思是不使用USART) 我
    發(fā)表于 12-06 16:16

    printf/fputc/putchar和vsprintf怎么使用?

    printf/fputc/putchar和vsprintf怎么使用?
    發(fā)表于 12-02 06:09

    PICC庫函數(shù)詳解

    PICC庫函數(shù)詳解
    發(fā)表于 04-18 20:13 ?132次下載

    Android開發(fā)手冊—API函數(shù)詳解

    Android開發(fā)手冊—API函數(shù)詳解
    發(fā)表于 10-17 09:01 ?13次下載
    Android開發(fā)手冊—API<b class='flag-5'>函數(shù)</b><b class='flag-5'>詳解</b>

    基于Android開發(fā)手冊—API函數(shù)詳解

    基于Android開發(fā)手冊—API函數(shù)詳解
    發(fā)表于 10-24 09:06 ?18次下載
    基于Android開發(fā)手冊—API<b class='flag-5'>函數(shù)</b><b class='flag-5'>詳解</b>

    淺談keil中庫函數(shù)和寄存器關(guān)系

    在一個芯片系統(tǒng)里,uart的驅(qū)動是廠商自己寫好的,那他們是怎么關(guān)聯(lián)printf到uart的呢?有人說,printf最終是調(diào)用了putchar,我搜索了源碼,沒有這個函數(shù),估計是開發(fā)工具,像KeilC
    發(fā)表于 06-22 08:19 ?3118次閱讀
    淺談keil中庫<b class='flag-5'>函數(shù)</b>和寄存器關(guān)系

    網(wǎng)絡(luò)函數(shù)的習(xí)題與詳解詳細說明

    本文檔的主要內(nèi)容詳細介紹的是網(wǎng)絡(luò)函數(shù)的習(xí)題與詳解詳細說明。
    發(fā)表于 09-28 08:00 ?0次下載
    網(wǎng)絡(luò)<b class='flag-5'>函數(shù)</b>的習(xí)題與<b class='flag-5'>詳解</b>詳細說明

    Linux內(nèi)核GPIO操作函數(shù)詳解分析

    本文檔的主要內(nèi)容詳細介紹的是Linux內(nèi)核GPIO操作函數(shù)詳解分析免費下載。
    發(fā)表于 01-22 16:58 ?28次下載

    Android開發(fā)手冊API函數(shù)詳解資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是Android開發(fā)手冊API函數(shù)詳解資料免費下載。
    發(fā)表于 02-22 08:00 ?0次下載

    51單片機(STC15W408AS)映射printf函數(shù) 串口收發(fā)實現(xiàn)

    前提:實現(xiàn)串口收發(fā)數(shù)據(jù)/************************************************* *函數(shù)名稱:char putchar(char c
    發(fā)表于 11-20 17:51 ?11次下載
    51單片機(STC15W408AS)映射printf<b class='flag-5'>函數(shù)</b> 串口收發(fā)實現(xiàn)

    如何使用printf函數(shù)將字符串打印到串口

    如何使用printf函數(shù)將字符串打印到串口該函數(shù)名已經(jīng)在標(biāo)準(zhǔn)輸入輸出庫頭文 件 stdio.h 中定義,原型為 int fputc(int ch, FILE *f)。在usart.c中添加
    發(fā)表于 01-12 18:53 ?1次下載
    如何使用printf<b class='flag-5'>函數(shù)</b>將字符串打印到串口

    C語言putchar函數(shù)介紹

    想從計算機向顯示器輸出一個字符,可以調(diào)用系統(tǒng)函數(shù)庫中的putchar函數(shù)。
    的頭像 發(fā)表于 03-09 11:02 ?4848次閱讀

    STM32庫函數(shù)SystemInit()詳解

    STM32庫函數(shù)SystemInit()詳解
    的頭像 發(fā)表于 09-18 15:45 ?5128次閱讀
    STM32庫<b class='flag-5'>函數(shù)</b>SystemInit()<b class='flag-5'>詳解</b>