1. 程式人生 > >C、C++多組輸入方法

C、C++多組輸入方法

多組輸入方法
C、C++多組輸入

下面轉載的大神總結的C++輸入方法:

學C++的時候,這幾個輸入函式弄的有點迷糊;這裡做個小結,為了自己複習,也希望對後來者能有所幫助,如果有差錯的地方還請各位多多指教(本文所有程式均通過VC 6.0執行)轉載請保留作者資訊;
1、cin
1、cin.get()
2、cin.getline()
3、getline()
4、gets()
5、getchar()
1、cin>>
用法1:最基本,也是最常用的用法,輸入一個數字:

#include <iostream>
using namespace std;
main ()
{
int
a,b; cin>>a>>b; cout<<a+b<<endl; }

輸入:2[回車]3[回車]
輸出:5
用法2:接受一個字串,遇“空格”、“TAB”、“回車”都結束

#include <iostream>
using namespace std;
main ()
{
char a[20];
cin>>a;
cout<<a<<endl;
}

輸入:jkljkljkl
輸出:jkljkljkl
輸入:jkljkl jkljkl //遇空格結束
輸出:jkljkl
2、cin.get()
用法1: cin.get(字元變數名)可以用來接收字元

#include <iostream>
using namespace std;
main ()
{
char ch;
ch=cin.get();               //或者cin.get(ch);
cout<<ch<<endl;
}

輸入:jljkljkl
輸出:j
用法2:cin.get(字元陣列名,接收字元數目)用來接收一行字串,可以接收空格

#include <iostream>
using namespace std;
main ()
{
char a[20];
cin.get(a,20);
cout<<a<<endl;
}

輸入:jkl jkl jkl
輸出:jkl jkl jkl
輸入:abcdeabcdeabcdeabcdeabcde (輸入25個字元)
輸出:abcdeabcdeabcdeabcd (接收19個字元+1個’\0’)
用法3:cin.get(無引數)沒有引數主要是用於捨棄輸入流中的不需要的字元,或者捨棄回車,彌補cin.get(字元陣列名,接收字元數目)的不足.
這個我還不知道怎麼用,知道的前輩請賜教;
3、cin.getline() // 接受一個字串,可以接收空格並輸出

#include <iostream>
using namespace std;
main ()
{
char m[20];
cin.getline(m,5);
cout<<m<<endl;
}

輸入:jkljkljkl
輸出:jklj
接受5個字元到m中,其中最後一個為’\0’,所以只看到4個字元輸出;
如果把5改成20:
輸入:jkljkljkl
輸出:jkljkljkl
輸入:jklf fjlsjf fjsdklf
輸出:jklf fjlsjf fjsdklf
//延伸:
//cin.getline()實際上有三個引數,cin.getline(接受字串的看哦那間m,接受個數5,結束字元)
//當第三個引數省略時,系統預設為’\0’
//如果將例子中cin.getline()改為cin.getline(m,5,’a’);當輸入jlkjkljkl時輸出jklj,輸入jkaljkljkl時,輸出jk
當用在多維陣列中的時候,也可以用cin.getline(m[i],20)之類的用法:

#include<iostream>
#include<string>
using namespace std;
main ()
{
char m[3][20];
for(int i=0;i<3;i++)
{
cout<<"\n請輸入第"<<i+1<<"個字串:"<<endl;
cin.getline(m[i],20);
}
cout<<endl;
for(int j=0;j<3;j++)
cout<<"輸出m["<<j<<"]的值:"<<m[j]<<endl;
}

請輸入第1個字串:
kskr1
請輸入第2個字串:
kskr2
請輸入第3個字串:
kskr3
輸出m[0]的值:kskr1
輸出m[1]的值:kskr2
輸出m[2]的值:kskr3
4、getline() // 接受一個字串,可以接收空格並輸出,需包含“#include”

#include<iostream>
#include<string>
using namespace std;
main ()
{
string str;
getline(cin,str);
cout<<str<<endl;
}

輸入:jkljkljkl
輸出:jkljkljkl
輸入:jkl jfksldfj jklsjfl
輸出:jkl jfksldfj jklsjfl
和cin.getline()類似,但是cin.getline()屬於istream流,而getline()屬於string流,是不一樣的兩個函式
5、gets() // 接受一個字串,可以接收空格並輸出,需包含“#include”

#include<iostream>
#include<string>
using namespace std;
main ()
{
char m[20];
gets(m);                       //不能寫成m=gets();
cout<<m<<endl;
}

輸入:jkljkljkl
輸出:jkljkljkl
輸入:jkl jkl jkl
輸出:jkl jkl jkl
類似cin.getline()裡面的一個例子,gets()同樣可以用在多維數組裡面:

#include<iostream>
#include<string>
using namespace std;
main ()
{
char m[3][20];
for(int i=0;i<3;i++)
{
cout<<"\n請輸入第"<<i+1<<"個字串:"<<endl;
gets(m[i]);
}
cout<<endl;
for(int j=0;j<3;j++)
cout<<"輸出m["<<j<<"]的值:"<<m[j]<<endl;
}

請輸入第1個字串:
kskr1
請輸入第2個字串:
kskr2
請輸入第3個字串:
kskr3
輸出m[0]的值:kskr1
輸出m[1]的值:kskr2
輸出m[2]的值:kskr3
自我感覺gets()和cin.getline()的用法很類似,只不過cin.getline()多一個引數罷了;
這裡順帶說明一下,對於本文中的這個kskr1,kskr2,kskr3的例子,對於cin>>也可以適用,原因是這裡輸入的沒有空格,如果輸入了空格,比如“ks kr jkl[回車]”那麼cin就會已經接收到3個字串,“ks,kr,jkl”;再如“kskr 1[回車]kskr 2[回車]”,那麼則接收“kskr,1,kskr”;這不是我們所要的結果!而cin.getline()和gets()因為可以接收空格,所以不會產生這個錯誤;
6、getchar() //接受一個字元,需包含“#include”

#include<iostream>
#include<string>
using namespace std;
main ()
{
char ch;
ch=getchar();                        //不能寫成getchar(ch);
cout<<ch<<endl;
}

輸入:jkljkljkl
輸出:j
//getchar()是C語言的函式,C++也可以相容,但是儘量不用或少用;

相關推薦

CC++輸入方法

多組輸入方法 下面轉載的大神總結的C++輸入方法: 學C++的時候,這幾個輸入函式弄的有點迷糊;這裡做個小結,為了自己複習,也希望對後來者能有所幫助,如果有差錯的地方還請各位多多指教(本文所有程式均通過VC 6.0執行)轉載請保留作者資訊; 1、cin

如何使用C++進行輸入

我們在做OJ題的時候經常遇到多組輸入,執行到檔案結束 常見的C語言寫法是這樣 while(scanf("%d", &n) != EOF){ /* code */ } 或者這樣 while(~scanf("%d", &n)){ /*

C/C++ 輸入計算a+b

//問題及程式碼 /* *Copyright (c) 2016,煙臺大學計算機學院 *All rights reserved. *檔名稱:test.cpp *作者:李瀟*完成日期:2016年09月8日 *版本號:v1.0 * *問題描述:輸入多組a,b 計算其

C++ 輸入計算a+b

多組輸入計算a+b 原始碼: #include <iostream> using namespace std; int main() { int a,b; while(cin>

CC++ 檔案的輸入輸出

FILE :是一種檔案型別,也稱檔案指標 注意:以下程式均為在vs2013中的用法,針對其他編譯器,寫法略有不同,但對檔案的用法都一樣! 定義 : FILE *fp fgetc(fp):從fp所指的檔案讀一個字元; fputc(ch,fp):將ch字元寫到檔案指標變數f

Java 實現a+b輸入讀到0+0終止

The input may contain several test cases.In each test case, there are two integers, a and b, separated by a space.Input is terminated by two consecutively

輸入字串 方法getline()與vector

方法一: 利用getline()函式 getline函式對空白符的處理:不忽略空白符,即把空白符也當成元素儲存到string物件中,讀取字元一直到換行符(回車),讀取終止且丟棄換行符(換行符從輸入流中丟去且不儲存在string物件中) cin函式對空白符的處理:讀取並忽略

【iOS開發-51】案例學習:動畫新寫法刪除子視圖視圖順序延遲方法button功能使用方法及icon圖標和啟動頁設置

無法查看 font targe 技術 value lstat tostring sta dict 案例效果: (1)導入所需的素材,然後用storyboard把上半截位置和大小相對固定的東西布局起來。當然,這些控件也要定義成對應地IBOutlet和IBActio

CC++和Java,AIHDOI

c++和java ++ 安全 思維方式 編譯 繼承 編程語言 健壯性 包含 C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。 盡管C語言提供了許多低級處理

Visual Studio Code配置CC++運行環境

.json nod 靜態 error 選中文字 變量 ket targe rcu 系統環境:64位 Windows 10 1. 環境的準備 (1)、下載 MinGW-w64 MinGW-w64 - for 32 and 64 bit Windows 在此頁面下載Min

如何學好CC++語言

cat 需要 布局 prime 使用 htm 你好 自信心 small 如何學好C語言 有人在酷殼的留言版上詢問下面的問題 keep_walker : 今天晚上我看到這篇文章。 http://programmers.stackexchange.com/questions/

CC++字符操作歸總

叠代 子串 memmove strcat to_char scn last std bst 1)字符串操作 strcpy(p, p1) 復制字符串 strncpy(p, p1, n) 復制指定長度字符串 strcat(p, p1) 附加字符串 strncat(p, p1,

Ubuntu下怎麽編譯並運行CC++和Pascal語言?

tro 開始 用戶 步驟 ide gcc 但是 col inf 很多同學在安裝了Ubuntu的環境後,發現在Windows下的許多東西都打不開了,但是用網站上的在線IDE又不是很方便。 所以,ljn教你如何在Ubuntu下編譯並運行C、C++和Pascal。 一.編譯並

PE檔案結構解析 CC++程式 vc2008編譯

//MyPeFile.h------------------------------------------------------------------------------------------------------ typedef unsigned short USHORT;typ

JavaCC++C#phppython語言的內在特性及應用

當你選擇了網際網路這個行業也就意味著你要終身學習,想必現在的你一定驚歎網際網路的發展速度吧! 網際網路行業不比傳統行業,不是說你精通一門手藝就可以一輩子靠這個手藝來養活自己,網際網路行業沒有這回事,如果你想問有沒有哪一門語言學完之後可以養活自己一輩子,那麼抱歉,我想沒人能回答你。 網際網路發

插入排序的CC++實現

一、插入排序 有一個已經有序的資料序列,要求在這個已經排好的資料序列中插入一個數,但要求插入後此資料序列仍然有序,這個時候就要用到一種新的排序方法——插入排序法,插入排序的基本操作就是將一個數據插入到已經排好序的有序資料中,從而得到一個新的、個數加一的有序資料,演算法適用於少量資料的排序,時間複雜度為O(n

氣泡排序的CC++實現

一、氣泡排序 氣泡排序就是重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如數字從大到小、首字母從A到Z)錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素已經排序完成。 這個演算法的名字由來是因為越大的元素會經由交換慢慢“浮”到數列的頂端(升序或

ACM 新手入門 之 如何實現輸入輸出

一般ACM賽制題目都要求  多組輸入輸出 ,我們以 杭電1000題為例:     題目是很簡單的 A+B :程式碼為: #include<stdio.h> int main() { int a,b; sc

想分一杯自動駕駛招聘熱潮的羹?先學好C C++Python吧!python

我們正在慢慢進入自動駕駛的時代。 雖然進步神速,而且特斯拉的自動駕駛汽車已經行駛了將近15億英里,但是一些酷炫的事情仍然只存在科幻小說裡。 根據最新麻省理工的一項研究,48%的消費者沒有購買全自動駕駛汽車的意願。 即便如此,對於相關領域的職位,求職者仍然趨之若鶩。自2015

1.CC++與OC

OC與C語言的區別 OC裡中相容C語言的語法可以兩者混合編碼。 OC是面向物件的,有類,物件的概念,C語言沒有 C是面向過程的語言 函式呼叫:Objective-C通過互相傳遞訊息實現函式呼叫,由執行環境決定;而C直接進行函式呼叫,由編譯器決定。 物件記憶體分配,oc所有物件都分配在堆空