国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - C語言中的getchar和putchar的使用方法

C語言中的getchar和putchar的使用方法

2021-06-07 15:39C語言教程網 C/C++

這篇文章主要介紹了C語言中的getchar和putchar的使用方法的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下

C語言中的getchar和putchar的使用方法

getchar是以行為單位進行存取的。

當用getchar進行輸入時,如果輸入的第一個字符為有效字符(即輸入是文件結束符EOF,Windows下為組合鍵Ctrl+Z, Unix/Linux下為組合鍵Ctrl+D),那么只有當最后一個輸入字符為換行符'\n'(也可以是文件結束符EOF,EOF將在后面討論)時, getchar才會停止執(zhí)行,整個程序將會往下執(zhí)行。譬如下面程序段:

?
1
2
3
while((c = getchar()) != EOF){
  putchar(c);
}

執(zhí)行程序,輸入:abc,然后回車。則程序就會去執(zhí)行puchar(c),然后輸出abc,這個地方不要忘了,系統(tǒng)輸出的還有一個回車。然后可以繼續(xù)輸入,再次遇到換行符的時候,程序又會把那一行的輸入的字符輸出在終端上。

對于getchar,肯定很多初學的朋友會問,getchar不是以字符為單位讀取的嗎?那么,既然我輸入了第一個字符a,肯定滿足while循環(huán)(c = getchar()) != EOF的條件阿,那么應該執(zhí)行putchar(c)在終端輸出一個字符a。不錯,我在用getchar的時候也是一直這么想的,但是程序就偏偏不著樣執(zhí)行,而是必需讀到一個換行符或者文件結束符EOF才進行一次輸出。

對這個問題的一個解釋是,在大師編寫C的時候,當時并沒有所謂終端輸入的概念,所有的輸入實際上都是按照文件進行讀取的,文件中一般都是以行為單位的。因此,只有遇到換行符,那么程序會認為輸入結束,然后采取執(zhí)行程序的其他部分。同時,輸入是按照文件的方式存取的,那么要結束一個文件的輸入就需用到EOF (Enf Of File). 這也就是為什么getchar結束輸入退出時要用EOF的原因。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
 
 
int main()
{
  int c;
  c = getchar();
  while (c != EOF)
  {
     putchar();
       c= getchar();
  }
  return 0;
}

這里主要解釋下為什么要用int型來接受getchar函數(shù)。
很多時候,我們會寫這樣的兩行代碼:

?
1
2
char c;
c = getchar();

這樣就很有可能出現(xiàn)問題。因為getchar函數(shù)除了返回終端輸入的字符外,在遇到Ctrl+D(Linux下)即文件結束符EOF時,getchar ()的返回EOF,這個EOF在函數(shù)庫里一般定義為-1。因此,在這種情況下,getchar函數(shù)返回一個負值,把一個負值賦給一個char型的變量是不正確的。 

下面用一個題目來看其實如何獲取字符和輸出字符的。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdio.h"
main()
{
  char c,d,e,f;
  printf("please input two characters:\n");
  c=getchar();
  putchar(c);
  putchar('\n');
  d=getchar();
  putchar(d);
  putchar('\n');
  e=getchar();
  putchar(e);
  putchar('\n');
  f=getchar();
  putchar(f);
  putchar('\n');
  printf("c= %c\n",c);
  printf("d= %c\n",d);
  printf("e= %c\n",e);
  printf("f= %c\n",f);
}

運行后先輸入“12”,回車,再輸入“34”,回車。

運行環(huán)境是redhat gcc

運行結果:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
please input two characters:
12 //輸入
1
2
//空行(\n)
//空行(\n)
34 //輸入
3
c= 1
d= 2
e=
//e的值就是空行(\n)
f= 3
//空行(\n)

下面具體解釋一下:

getchar函數(shù)每次從緩沖區(qū)中得到一個字符,putchar函數(shù)每次輸出一個字符。

首先輸入了兩個字符12,然后回車,注意這時寫入緩存中的有3個字符1,2,回車。

程序中有四個getchar(),于是c='1',d='2',e='\n'。

這時運行到f=getchar();輸入緩存中的三個字符均被前三個getchar獲取,這時需要用戶輸入,

這里輸入了34

于是f='3',4和后面的回車沒有被利用。

這便是整個流程。

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

原文鏈接:http://blog.csdn.net/dizzthxl/article/details/8575574

延伸 · 閱讀

精彩推薦
  • C/C++c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    這篇文章主要介紹了c++ 單線程實現(xiàn)同時監(jiān)聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數(shù)據(jù)都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數(shù)據(jù),C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++C語言實現(xiàn)電腦關機程序

    C語言實現(xiàn)電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    strcpy 和strcnpy函數(shù)是字符串復制函數(shù)。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數(shù)使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++深入理解goto語句的替代實現(xiàn)方式分析

    深入理解goto語句的替代實現(xiàn)方式分析

    本篇文章是對goto語句的替代實現(xiàn)方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩欧美三级 | 亚洲小视频网站 | 国产亚洲精品久久久久动 | 精品一区二区三区免费毛片爱 | 四虎成人免费电影 | 91操碰| 99精品一区二区三区 | 一区二区中文字幕 | 午夜成人免费视频 | 另类sb东北妇女av | 欧美视频成人 | 成人精品视频在线观看 | 天天操天天拍 | 久久er99热精品一区二区 | 久久精品国产99国产 | 亚洲www视频 | 国产一区二区三区在线视频 | 成人av观看 | 亚洲成人黄色 | 欧美日本韩国一区二区三区 | 亚洲精品久久 | 日韩国产一区二区 | 99黄色片 | 中文字幕亚洲一区二区三区 | 成人亚洲网 | 亚洲小视频 | 伊人中文字幕 | 欧美中文字幕在线 | 黄在线免费 | 久久久久国产精品免费免费搜索 | 97精品国产97久久久久久免费 | 亚洲狠狠爱一区二区三区 | 国产日韩精品视频 | 亚洲国产成人精品女人久久久 | 欧美男人的天堂 | 国产欧美精品一区二区三区 | 一区二区三区欧美在线 | 久色视频在线观看 | 欧美综合第一页 | 国户精品久久久久久久久久久不卡 | 黄色美女视频网站 |