關於C 的cin輸入格式的問題

2022-03-08 22:24:57 字數 4531 閱讀 6074

1樓:匿名使用者

這個還真不太容易說明白,因為c++使用流這個東西,cin是乙個流物件,接收終端的輸入遇到回車結束

然後終端的輸入都存入到cin物件裡

然後通過過載的運算子》將儲存的內容儲存到變數裡,但是預設按空格結束,其實你可以修改結束標誌的

那麼分析你cin的過程,輸入1 空格 2,流裡存入了1空格2

然後cin>>a,將1傳給了a,遇到了空格,結束,但是此時cin並沒有空.

cout << a,輸出了1

然後繼續cin>>b,因為cin裡還有乙個2存在,所以,b也得到了2

cout << b,就又輸出2了

我也改乙個判斷輸入的吧

#include

using namespace std;

int main()

//語句1

cout <>b; //語句3

while((c=cin.get()) != ' ' && c >= '0' && c <= '9')

cout <

return 0;}

2樓:砍侃看

上面的語句無非就是輸入數字然後輸入乙個短劃線或者冒號,用cin也是一樣的,無非就是你輸入的短劃線或者冒號需要乙個字串變數來接收唄。

string str;

int year,month,day;

cin>>year>>str>>month>>str>>day;

這些在輸入的時候樣式是一樣的。

3樓:匿名使用者

cin只是用來輸入,如果需要格式控制還是需要scanf

4樓:瓶子裡的小

很簡單,你想在輸入x y時用逗號分隔,那麼其實輸進電腦的是三個值,這三個值分別為"x",",","y",此時就要再定義乙個字元型變數。main函式如下:

int main()

c++ 的cin輸入和型別通用的問題

5樓:河蟹和諧河蟹

因為a與int型別不匹配

你可以試著把

int a = 1;改為

char a = 1;試下。

6樓:匿名使用者

蘭表示式解析方程!

char *p = new char[2000];

cin>>p;

p寫成char*就好了!

p=new char[1000];//向系統申請1000個單元!

cin>>p//輸入字串!

然後判斷字串!

然後比如你準備帶入x,y吧,那麼x,y值固定了。

用資料結構的逆波蘭表示式計算表達這個函式就好了!

至於逆波蘭表示式,你可以到網上找,就是資料結構棧的部分,很簡單。但很冗長!

我就不寫了。你自己好好學習吧。

另外,站長團上有產品**,便宜***

7樓:匿名使用者

你好:對於賦值語句「=」及輸入流語句「cin>>」的區別你可能沒有弄清楚。

賦值語句「=」中間包含了強制型別轉換,比如double型賦值給int整型,就會發生資料截斷。 而輸入流「cin>>」沒有此功能,它只要求輸入的內容與變數的型別相符即可,若不相符,則此語句為非法(但是並非所有的編譯器都報錯)。自動忽略此語句。

資料在記憶體中儲存為二進位制形式,也即ascii碼,沒有錯誤。

祝你好運!!

c++中cin的輸入問題

8樓:匿名使用者

這個還真不太容易說明白,因為c++使用流這個東西,cin是乙個流物件,接收終端的輸入遇到回車結束

然後終端的輸入都存入到cin物件裡

然後通過過載的運算子》將儲存的內容儲存到變數裡,但是預設按空格結束,其實你可以修改結束標誌的

那麼分析你cin的過程,輸入1 空格 2,流裡存入了1空格2

然後cin>>a,將1傳給了a,遇到了空格,結束,但是此時cin並沒有空.

cout << a,輸出了1

然後繼續cin>>b,因為cin裡還有乙個2存在,所以,b也得到了2

cout << b,就又輸出2了

我也改乙個判斷輸入的吧

#include

using namespace std;

int main()

//語句1

cout <>b; //語句3

while((c=cin.get()) != ' ' && c >= '0' && c <= '9')

cout <

return 0;}

9樓:匿名使用者

語句3執行了,1+空格+2+回車,則1、2兩個整數都進入緩衝區,不是12.

你可以輸出乙個換行就清楚了。

#include

using namespace std;

int main()

while(*str!='\0')/*如果字串結束就跳出while迴圈*/

return true;/*如果沒有數字以外的字元,證明這個字串是乙個整型,就返回true*/

}int main()

a=atoi(str);

//cin >>a; //語句1cout <>b; //語句3cout <

10樓:遁世千秋

cin輸入流會暫存的,原程式有兩個cin你輸入1+空格2的時候會會把1,2分別存入a和b,如果只有乙個cin>>a;則會輸出1;至於報錯的事兒,其實也沒必要

11樓:匿名使用者

很簡單的啊,不管你一次輸入多少,先送到輸入流緩衝區裡,然後後面的語句繼續執行,當有讀入的語句時,它先看緩衝區有木有!有就直接讀取了,繼續執行下面的語句,所以你的結果也是情理之中的。一般我們用cin.

ingnore(std::numberic_limits::max(),'\n')清除緩衝區。

windows下 c++ 關於cin輸入的問題

12樓:匿名使用者

開個執行緒處理輸入,定時器每隔五秒檢視執行緒,如果執行緒還在就中斷。

13樓:

可以呼叫延時函式:sleep(int n); //n表示毫秒數,延時5s,sleep(5000);

使用時要新增標頭檔案: #include

14樓:匿名使用者

cin 按書本來保證行,我就是那樣搞定的

linux c++ cin輸入問題

15樓:認不倒你

重定向:

./a.out < infile

16樓:匿名使用者

用freopen函式就可以做到

17樓:萌

#include

#include

#include

int main(void)

上面的程式我已經測試了,完全符合你的要求,用的方法是阻斷當前使用者輸入,解鎖後恢復輸入的方法,在阻斷區間使用者輸入被過濾掉

c++用cin輸入陣列問題

18樓:

只能先用一行輸入a,再用一行輸入b[a]——因為cin是從右邊開始壓棧的,就是先壓b[a]再壓a,顯然壓b[a]時還不知道a是多少,後面輸入了a,但改變不了已經壓棧了的內容。就是說這種情況一定要保證操作b[a]時a必須是已知的。但這種東西與編譯器關係很大,也許後來的編譯器異想天開,弄個別緻的規則來,這樣輸入也許就可以了,因為c/c++並沒有規定輸入時必須怎麼做和不得怎麼做,只是目前看到的編譯器都是從右向左來解釋的而已……

c++ 關於cin輸入

19樓:萢萢

會輸出乙個不確定的值,該值是系統為變數a分配的位址上原有的資料值(會隨時間發生改變)。

20樓:匿名使用者

//注意著兩張**,第二張 我把cin一行註釋起來了,

由於型別不同,int a並沒有儲存你輸入的a的adcll碼,

21樓:神聖的大嬸

我來詳細地給樓主解釋一下這個程式的執行過程吧

cin讀的是輸入緩衝區(stdin)中的內容,只有緩衝區為空的時候才會要求使用者輸入,否則只是讀取緩衝區的內容。

在第一次執行cin>>s的時候,

緩衝區為空,所以會顯示下劃線讓你輸入,執行緒掛起,然後你輸入sdf sdf ssf sdf f eof 回車

這時候,cin>>s返回,第乙個sdf讀進s,然後便輸出sdf和換行

下一次執行cin>>s的時候,緩衝區不為空,所以不再要求使用者輸入,讀取第二個sdf,然後輸出sdf換行,依次類推

直到cin讀到eof的時候,cin>>s返回false,迴圈退出,程式結束

22樓:匿名使用者

應該是ascii的a,97吧

C語言,關於scanf控制格式輸入小數的問題

scanf格式控制的完整格式 m l或h 格式字元。格式字元與printf函式中的使用方式相同,以 d o x c s f e,無 u格式 g格式。可以指定輸入資料所佔列寬,系統自動按它擷取所需資料。如 scanf 3d 3d a,b 輸入 123456 系統自動將123賦給a,456賦給b。後的 ...

c 中std cin和cin的區別

沒有區別,是新舊 兩種 c 標準的不同表達形式 新的c 標準中,cin,cout 被放入了 std 空間了,所以在使用的使用 必須使用std cin,std cout,或者使用using 進行 說明 沒區別!如果是 inclide就要用實std cin如果是 include using namesp...

c語言中輸入格式 輸出格式的組成包括哪些內容

希望被樓主採納!printf 函式是格式化輸出函式,一般用於向標準輸出裝置按規定格式輸出資訊。printf 函式的呼叫格式為 printf 格式化字串 參量表 其中格式化字串包括兩部分內容 一部分是正常字元,這些字元將按原樣輸出 另一部分是格式化規定字元,以 開始,後跟一個或幾個規定字元,用來確定輸...