c/c++键盘输入

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的状态:

                          

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值