1. 程式人生 > >Scanf函式的返回值

Scanf函式的返回值

 1. scanf 函式是有返回值的,它的返回值可以分成三種情況
  1) 正整數,表示正確輸入引數的個數。例如執行 scanf("%d %d", &a, &b);
      如果使用者輸入"3 4",可以正確輸入,返回2(正確輸入了兩個變數);
      如果使用者輸入"3,4",可以正確輸入a,無法輸入b,返回1(正確輸入了一個變數)。
  2) 0,表示使用者的輸入不匹配,無法正確輸入任何值。如上例,使用者如果輸入",3 4",返回0。
  3) EOF,這是在stdio.h裡面定義的常量(通常值為-1),表示輸入流已經結束。在Windows下,使用者按下CTRL+Z(會看到一個^Z字元)再按下回車(可能需要重複2次),就表示輸入結束;Linux/Unix下使用CTRL+D表示輸入結束。

所以可以使用下面的程式碼來處理輸入:
while (scanf("%s %c %c", str, &oldchar, &newchar) == 3) /* 或!= EOF , 但前者更好 */
{
    ; //處理
}

2. 為什麼前面 scanf 的格式串裡面,%s和%c中間需要空格呢?
  那是因為如果沒空格的話。。。oldchar輸入的就是空格了= =.

3. 順便說一下,printf的返回值是輸出的字元數,例如,printf("1234")的返回值是4,而printf("1234\n")的返回值是5。

相關推薦

C語言scanf()函式返回的問題(實驗一)

不經意中發現scanf()的返回值問題,自己試驗和了解了一下,一些所知與各位分享; void main()  {  int a; int b; int c; printf("請輸入三個整數:"); int x=scanf("%d%d%d",&a,&b,&c); printf("%d/n

Python小白學習之路(十)—【函式】【函式返回】【函式引數】

寫在前面: 昨天早睡之後,感覺今天已經恢復了百分之八十的樣子 又是活力滿滿的小夥郭 今日份雞湯: 我始終相信,在這個世界上,一定有另一個自己,在做著我不敢做的事,在過著我想過的生活。-------宮崎駿 函式 一、函數出現的背景 在學習函式之前,一直遵循:面向過程程式設計,即:根據業務邏輯從上到

recv函式返回總結

函式原型:int recv( SOCKET s, char *buf, int  len, int flags) 功能:不論是客戶還是伺服器應用程式都用recv函式從TCP連線的另一端接收資料。 引數一:指定接收端套接字描述符; 引數二:指明一個緩衝區,該緩衝區用來存放recv

C# socket 程式設計之 accept() 函式返回解析

accept() 函式會返回一個新的套接字,這個新的套接字在伺服器端與客戶端進行通訊。 伺服器端的繫結監聽是一個套接字,與客戶端通訊的是另一個套接字(accept函式返回的套接字,注意這裡不是返回客戶端的套接字,返回的套接字是新建立在伺服器上的,與客戶端收發訊息用的) 下面這段程式碼,是

recv函式返回說明

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

opencv之type()函式返回對應表

opencv之type()函式返回值對應表 cv::Mat 類的物件有一個成員函式 type() 用來返回矩陣元素的資料型別,返回值是 int 型別,不同的返回值代表不同的型別。 int Mat::type() const 返回值與具體型別對應關係表: | |C1| C2| C3| C4| --|--|

建構函式返回

建構函式返回值 For purposes other than simple initialization, classes can have constructors. Constructors are blocks of statements that can be used to in

按鍵精靈Q語言-怎麼使用自定義函式返回

按鍵精靈怎麼使用自定義函式返回值? a i MessageBox i Function a(i) i=100 End Function 就是想彈出100 aiMessageBoxiFunctiona(i)i=100EndFunction就是想讓它彈出的是100怎麼獲得自定義函式中的值呢?...展

風火程式設計--flask檢視函式返回

flask檢視函式返回json資料 原始模式 data_json = json.dumps({"errcode": "0", "errms": "成功", "data": data}) return data_json, 200, {"Contant-Type": "Applic

C++ 引用作為函式返回

(1)以引用返回函式值,定義函式時需要在函式名前加 & (2)用引用返回一個函式值的最大好處是,在記憶體中不產生被返回值的副本。 引用作為返回值,必須遵守以下規則: (1)不能返回區域性變數的引用。主要原因是區域性變數會在函式返回後被銷燬,因此被返回的引用就成為了

函式的文件說明,函式引數,函式返回

def test(a,b): … “用來完成對2個數求和” … print("%d"%(a+b)) … test(11,22) 33 如果執行,以下程式碼 h

引用作為函式返回的分析

  例如,下面的程式是有關引用返回的4種形式:     //*********************     //**   ch9_6.cpp  **     //*******************

solidity智慧合約[28]-函式返回

函式返回值一般形式 12345678910 function  resValue() pure public returns(uint){    uint a = 10;    return a;}function &nb

Python函式中的變數和函式返回

1.函式的變數 區域性變數和全域性變數: Python中的任何變數都有特定的作用域 在函式中定義的變數一般只能在該函式內部使用,這些只能在程式的特定部分使用的變數我們稱之為區域性變數 在一個檔案頂部定義的變數可以供檔案中的任何函式呼叫,這些可以為整個程式所使用的變數稱為全域性變數。

Java函式返回的“魔術”轉型

先看一段程式碼: public Object get(String name) {   return map.get(name); } 其中獲取的返回值,可能是字串,也可能是數字等等。那麼呼叫它的程式碼,可能就充斥著各種各樣的轉型: String value1 = (String)get

函式返回案例

//求2個數字的差的function getNumber(num1,num2) { return num1-num2;}console.log(getNumber(10,20));//求一組數字中的最大值function getMax(num) { 定義變數假設這個值是最大值 var max

Typescript | 箭頭函式返回

/* * @Author: AK-12 * @Date: 2018-11-01 20:07:29 * @Last Modified by: AK-12 * @Last Modified time: 2018-11-01 22:00:41 */ import IBlock from '.

14. 函式返回為引用?

函式返回值可以是引用嗎? 當然可以,只是在函式返回引用的時候需要注意幾點。以下給出討論! 函式在返回值的時候,會產生一個臨時變數作為函式返回值的副本;而函式在返回引用的時候,不會產生副本!那麼既然是

目前無法從修改區塊鏈的函式返回

參考文件: 當呼叫一個合約的方法。這個方法想返回值。有2種情況: 1、如果這個方法中修改了合約資料。那隻能通過event返回值。 2、如果這個方法沒有修改區塊資料,那直接可以返回值。 例子 pragma solidity ^0.4.25; contract Assert{ }

C語言函式返回的實現方法和誤區

例項:你們認為這三個函式能正常返回嗎?  int func1(int a , int b) { int c = 0; c = a + b; return c; } char * func2() { char *strTmp = "abs"; return str