c語言中cin與scanf有什麼不同

2022-06-09 06:31:45 字數 4512 閱讀 5831

1樓:兆柏龐長旭

首先,cin

是個c++型別物件,它的類zhidao型是basic_istream,scanf

是個不定引數的函式,

其次,cin

所屬的類過載了

>>運算子,使輸入更簡單了,比如

double

d;cin>>d;

而scanf

不一樣的,

double

d;scanf("%lf",&d);

看起來麻煩一點。

另外,cin

也更安全,不會發生記憶體溢位。

char

c;scanf("%lf",&c);

//這時需要8個位元組的空間,但只提供一個,記憶體溢位。

而cin

也更安全

char

c;cin>>c;

//只輸入字元,不會溢位

從底層上來說,c++

的cin

與c語言的

scanf

都採用stdin

作為內輸入源,

但cin和scanf

採用了不同的緩衝區,可以通過

ios標頭檔案裡面的容

sync_with_stdio

()函式設定緩衝區共享,使cin和scanf共享緩衝區。

c++也可以改變輸入源,但這樣很複雜。

其實,c++對

stdin

進行了封裝,用流和迭代器進行了轉變了流的概念而已,而c的scanf直接操作

stdin而已

2樓:羿絢公良同光

c/c++

語言中cin與scanf區別為百:性質不同、操作效率不同、取資料不同。

一、性質不同

1、cin:cin是標準化輸入,包含在標頭檔案中。

2、scanf:scanf是格式化輸入,包含在標頭檔案中。

二、操作度效率不同

1、cin:cin先把要輸入的東西存入緩衝區,再輸入,導致的輸入操作效率稍低,但書寫簡便。

2、scanf:scanf的是用指標把要輸入的東西輸問入的,輸入效率比較高,但是寫**麻煩。

三、取資料不同

1、cin:cin的取資料時會忽略空答格和回車繼續輸入。

2、scanf:scanf取資料時遇到回車、空格、tab就會停止。

c++ cin和scanf有什麼區別?

3樓:

在c++裡面,cin是輸入流,scanf是標準輸入。

在方便性上,cin優於scanf

示例:int a;

cin>>a;

scanf("%d",&a);

但如果是輸入資料很大的情況下,建議不要用cin,因為它所佔用的時間十分長。

就例如for(int i=1;i<=1000000;i++) cin>>a[i];可能會用掉比scanf多很多倍的時間。

所以,一些單個的輸入可以用cin,但迴圈之類的輸入最好用scanf。

cout、printf與cin、scanf有異曲同工之處

c/c++ 語言中cin與scanf有什麼不同

4樓:教育仁昌

c/c++ 語言中cin與scanf區別為:性質不同、操作效率不同、取資料不同。

一、性質不同

1、cin:cin是標準化輸入,包含在標頭檔案中。

2、scanf:scanf是格式化輸入,包含在標頭檔案中。

二、操作效率不同

1、cin:cin先把要輸入的東西存入緩衝區,再輸入,導致的輸入操作效率稍低,但書寫簡便。

2、scanf:scanf的是用指標把要輸入的東西輸入的,輸入效率比較高,但是寫**麻煩。

三、取資料不同

1、cin:cin的取資料時會忽略空格和回車繼續輸入。

2、scanf:scanf取資料時遇到回車、空格、tab就會停止。

5樓:匿名使用者

首先,cin 是個c++型別物件,它的型別是basic_istream,scanf 是個不定引數的函式,

其次,cin 所屬的類過載了 >> 運算子,使輸入更簡單了,比如

double d; cin>>d;

而 scanf 不一樣的,

double d;scanf("%lf",&d);

看起來麻煩一點。

另外,cin 也更安全,不會發生記憶體溢位。

char c; scanf("%lf",&c); //這時需要8個位元組的空間,但只提供一個,記憶體溢位。

而 cin 也更安全

char c;cin>>c; //只輸入字元,不會溢位

從底層上來說,c++ 的 cin 與 c語言的 scanf 都採用 stdin 作為輸入源, 但cin和scanf 採用了不同的緩衝區,可以通過 ios 標頭檔案裡面的 sync_with_stdio () 函式設定緩衝區共享,使cin和scanf 共享緩衝區。

c++也可以改變輸入源,但這樣很複雜。

其實,c++對 stdin 進行了封裝,用流和迭代器進行了轉變了流的概念而已,而c的scanf直接操作 stdin而已

6樓:

scanf是格式化輸入在c裡用

cin是輸入流 常用於c++

7樓:匿名使用者

c語言裡的輸入輸出是用函式實現的,不是語言本身的事情,

c++是用流進行輸入輸出輸出。

8樓:八條

scanf用在c中,cin用在c++中。

scanf輸出要寫格式,scanf("%d",&a);

cin不用,直接寫,cin>>a;

9樓:數學之星

scanf用在c中,cin用在c++中。

scanf呼叫格式:scanf("[內容]%d",[變數]).

cin呼叫格式:cin>>"[內容]">>[變數]>>endl.

c++中cin和scanf的區別是什麼

10樓:溜達火了沒

在c++裡面,cin是輸入流,scanf是標準輸入。

在方便性上,cin優於scanf

示例:int a;

cin>>a;

scanf("%d",&a);

但如果是輸入資料很大的情況下,建議不要用cin,因為它所佔用的時間十分長。

就例如for(int i=1;i<=1000000;i++) cin>>a[i];可能會用掉比scanf多很多倍的時間。

所以,一些單個的輸入可以用cin,但迴圈之類的輸入最好用scanf。

cout、printf與cin、scanf有異曲同工之處

關於c++,printf跟cout,scanf跟cin有啥區別?是不是等同關係。

11樓:匿名使用者

不是等同的關係。它好比兩個作用相同的函式。printf跟cout,scanf是c裡的函式,標頭檔案是stdio.

h,而cin和cout是c++的函式,標頭檔案是iostream。其實實現的功能基本相同,都是輸入輸出的操作,只要引入不同的標頭檔案就可以使用不同的函式。

12樓:匿名使用者

不等同啊!printf,scanf 是c語言寫法, cout,cin是c++寫法,需要匯入iostream庫。printf,scanf 在輸入輸出時要定義好輸入輸出格式,而cout,cin則是根據變數的型別輸入輸出,不需要指定變數的輸入輸出型別。

13樓:匿名使用者

c++相容了c語言很多東西。

c++:cin,cout

c:printf,scanf

都是標準輸入輸出。

建議:c參考書:c程式設計語言

c++參考書: c++primer 第五版 (注意沒有plus)

14樓:

可以理解為一樣的,只是內部實現方法不同

請問c++裡cin和scanf有什麼實際意義上的區別,不要告訴我用法,也不要告訴我scanf是格式

15樓:校花丶窼頿齔

cin cout被稱作流輸入 流輸出 是一個資料流 而不是一個具體的資料 cin cout 和scan print的關係就好像小溪和小溪中的水滴 print和scan必須指定型別才能輸入和輸出 比如printf(「%d」,a)指定輸出整形且只能輸出整形

c++中的cin和scanf的作用是一樣的嗎 ,能互換把!

16樓:唐博

雖然都是用來輸入的,但是二者是完全不同的兩個東西,原理也不同。

scanf就是一個庫函式,以變數地址為引數進行輸入。

cin是c++中一個istream類物件,不是一個函式,它的功能要比scanf多很多,具體的可以自己看一下c++ istream相關的內容。

17樓:匿名使用者

可以,後者是c裡的,c++一般都前者~

c語言scanf 輸入函式,c語言中的scanf 函式的用法

scanf是c語言中的一個輸入函式,與printf函式一樣,都被宣告在標頭檔案stdio.h裡,因此在使用scanf函式時要加上 include 在有一些實現中,printf函式與scanf函式在使用時可以不使用預編譯命令 include 它是格式輸入函式,即按使用者指定的格式從鍵盤上把資料輸入到指...

c語言中scanf和printf都是輸出函式兩者有什麼區別呢

兩者完全不同,scanf是輸入函 數,printf是輸出函式,所以會經常同時出現。兩者也沒有可比性,需要弄清他們的概念。1.scanf 是c語言中的一個輸入函式。函式 scanf 是從標準輸入流stdio 標準輸入裝置,一般指向鍵盤 中讀內容的通用子程式,可以說明的格式讀入多個字元,並儲存在對應地址...

c語言中與的區別C語言中與的區別

區別 1.運算子性質不同。是一個位運算子。是一個邏輯運算子。2.作用不同。是將兩個二進位制的數逐位相與,結果是相與之後的結果。就是判斷兩個表示式的真假性,只有兩個表示式同時為真才為真,有一個為假則為假,具有短路性質。3.用途限制。除了是一個位運算子,也是取地址符。就是一個單純的邏輯運算子,沒有任何其...