您的位置:首页 > 编程语言 > C语言/C++

c/c++键盘输入

2016-07-12 17:08 429 查看
C语言输入:

包含头文件 # include<stdio.h>即可。

(1)使用scanf():

(a)利用一个scanf函数输入单个字符:(一个数字也可被认为是一个字符输入)

char arr[1024];

int i=0;

char ch;

scanf("%c",&arr[0]); //注意格式,单个字符输入

ch=arr[0];

while(ch!='\n') //连续输入字符,直到输入回车符结束

{

i++;

scanf("%c",&arr[i]);

ch = arr[i];

}

arr[i] = '\0'; //注意在末尾加上结束符

printf("%s\n",arr);

键盘输入:hello,word hello回车

命令框显示:hello,word hello

hello,word hello

请按任意键继续. . .

此时arr的状态:



(b)利用一个scanf函数输入一个字符串:

char arr[1024];

scanf("%s",arr);

printf("%s\n",arr);

键盘输入:hello回车

命令框显示:hello

hello

请按任意键继续. . .

此时arr的状态:



说明:系统自动在hello后面加一个'\0'结束符。

(c)利用一个scanf函数输入多个字符串:

char arr[1024];

scanf("%s",arr); //注意格式,以字符串格式输入

printf("%s\n",arr);

键盘输入:hello,word hello回车

命令框显示:hello,word hello

hello,word

请按任意键继续. . .

此时arr的状态:



说明:系统把空格字符作为输入的字符串之间的分隔符,因此只将空格前的字符hello,word送到arr中。

(2)使用gets():

输入一个字符串,遇回车结束。

char arr[1024];

gets(arr);

puts(arr);

printf("%s\n",arr);

输入:hello word,hello word回车

命令框显示:

hello word,hello word

hello word,hello word

hello word,hello word

请按任意键继续. . .

此时arr的状态:



(3)使用getchar():
getchar():从键盘输入一个字符。

char arr[1024];

int i=0;

arr[0]=getchar();

while(arr[i]!='\n') //直到输入回车符时结束

{

i++;

arr[i] = getchar();

}

arr[i] = '\0'; //末尾加入分隔符

printf("%s\n",arr);

输入:hello word,hello回车

命令框显示:hello word,hello

hello word,hello

请按任意键继续. . .

此时arr的状态:



C++输入:

(1)使用cin,string对象:

# include <iostream>

# include <string>

using namespace std;

void main()

{

string sarr;

cin>>sarr;

cout<<sarr<<endl;

}

输入:hello,word hello回车

命令框输出:hello,word hello

hello,word

请按任意键继续. . .

说明:string对象遇空白(空格符、换行符、制表符等)结束读入。

(2)使用getline(istream &in, string &s):

从输入流读入一行到string s。

循环读入,回车代表一次读取完毕,再输入下次读取字符:

string sarr;

while(getline(cin,sarr)) //反复读取,直到达到文件末尾

cout<<sarr<<endl;

输入:hello word,hello回车

命令框显示:hello wod,hello

hello wod,hello

继续输入:ni hao ma回车

命令框显示:hello wod,hello

hello wod,hello

ni hao ma

ni hao ma
说明:第一次sarr里面存放的是hello wod,hello,第二次sarr里面存放的是ni hao ma。

只读入一行,遇回车结束读入:(!!!使用string对象输入的终极选择)

string sarr;

getline(cin,sarr);

cout<<sarr<<endl;

输入:hello word,hello回车

命令行显示:hello word,hello

hello word,hello

请按任意键继续. . .

sarr的状态:(可用下标引用元素)



(3)使用vector:

vector<char> varr;

char ch;

while(cin>>ch)

varr.push_back(ch);

输入:hello word,hello回车

ctrl+z回车

命令框输出:hello word,hello

^Z

请按任意键继续. . .

varr的状态:(!!!!里面没有空格)



(4)使用vector,string

string word;

vector<string> varr;

while(cin>>word)

varr.push_back(word);

输入:hello word, hello ni,hao回车

ctrl+z回车

命令框输出:hello word, hello ni,hao

^Z

请按任意键继续. . .

varr与word的状态:(空白符分单词)



(5)使用vector,getchar():(!!!使用vector向量输入的终极选择)

char ch;

vector<char> varr;

ch = getchar();

while(ch!='\n')

{

varr.push_back(ch);

ch = getchar();

}

for(int i=0;i<varr.size();i++)

cout<<varr[i];

输入:hello word,hello回车

命令框输出:hello word,hello

hello word,hello请按任意键继续. . .

varr的状态:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言 C++ 键盘输入