C语言输入:
包含头文件 # include
(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的状态:
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
# include
using namespace std;
void main()
{
string sarr;
cin>>sarr;
cout<
}
输入:hello,word hello回车
命令框输出:hello,word hello
hello,word
请按任意键继续. . .
说明:string对象遇空白(空格符、换行符、制表符等)结束读入。
(2)使用getline(istream &in, string &s):
从输入流读入一行到string s。
循环读入,回车代表一次读取完毕,再输入下次读取字符:
string sarr;
while(getline(cin,sarr)) //反复读取,直到达到文件末尾
cout<
输入:hello word,hello回车
命令框显示:hello wod,hello
hello wod,hello
继续输入:ni hao ma回车
命令框显示:hello wod,hello
hello wod,hello
ni hao ma说明:第一次sarr里面存放的是hello wod,hello,第二次sarr里面存放的是ni hao ma。
只读入一行,遇回车结束读入:(!!!使用string对象输入的终极选择)
string sarr;
getline(cin,sarr);
cout<
输入:hello word,hello回车
命令行显示:hello word,hello
hello word,hello
请按任意键继续. . .
sarr的状态:(可用下标引用元素)
(3)使用vector:
vector
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
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
ch = getchar();
while(ch!='\n')
{
varr.push_back(ch);
ch = getchar();
}
for(int i=0;i
输入:hello word,hello回车
命令框输出:hello word,hello
hello word,hello请按任意键继续. . .
varr的状态: