精华内容
下载资源
问答
  • C++输入动态数组
    千次阅读
    2021-03-17 16:29:53
    #include<stdio.h>
    #include<iostream>
    #include<vector>
    using namespace std;
    
    
    int main(){
        int a;
        vector<int> v;
        while(cin>>a)
        {
            v.push_back(a);
            if(cin.getchar()=='\n') break;
    
        }
        cout<<v.size();
    }
    
    
    更多相关内容
  • C++ 输入一个动态大小的数组

    千次阅读 2019-10-10 00:08:25
    以往我们在进行排序等运算时需要输入一串数,我发现很多都是输入的数需要我们自己提供,比如输入1 2 3 4 5 6 7,我们需要输入元素的个数7,很多时候因为我们预先设置好的数组是大小固定的。如果我们输入的元素个数不...

    以往我们在进行排序等运算时需要输入一串数,我发现很多都是输入的数需要我们自己提供,比如输入1 2 3 4 5 6 7,我们需要输入元素的个数7,很多时候因为我们预先设置好的数组是大小固定的。如果我们输入的元素个数不固定怎么办?

    int *a = new int[255];  //最大255     这里需要有一个上限大小,我不知道怎么申请一个上限都不固定的数组
    	memset(a, 0, 255);   //所有元素清零   memset适用于所有类型,不同于memcpy
    	int num=0;
    	
    	printf("请输入一串数\n");
    	
    	do
    	{
    		scanf("%d",a+num);
    		num++;
    	} while (getchar() != '\n');
    
    /*
    如果写成while(getchar() != '\n')
    
        这样的话会把第一个元素给取走,少一个数
    上述写法每次取走一个都会刷新一下缓冲区,注意输入最后一个数后面不要有空格
    比如我们输入 2 3 5 7 11 13 17 19(Enter)
    num 记录的是数的个数
    
    */

     下面是一个快排算法的完整代码

    #include "stdafx.h"
    void QuickSort(int arry[], int L, int R)
    {
    	if (L >= R)
    		return;
    	int left = L, right = R;//在两端设置两个游标
    	int pivot = arry[left];   //左端设为中间的值
    
    	while (left<right)
    	{
    		while (left<right&&arry[right]>=pivot)  //如果右边的值大于中间值  则靠近右侧游标
    		{
    			right--;
    
    		}
    		if (left < right)   
    
    		{
    			arry[left] = arry[right];  //交换左右
    
    		}
    		while (left<right&&arry[left]<=pivot)   //交替靠近左边
    
    		{
    			left++;
    		}
    		if (left < right)
    		{
    			arry[right] = arry[left];  //交换
    
    		}
    		if (left>=right)
    		{
    			arry[left] = pivot;
    		}
    	}
    	QuickSort(arry, L, right - 1);   //重复两次
    	QuickSort(arry, right+1, R);
    
    }
    
    
    int main()
    {
    	//int a[20];
    	int *a = new int[255];
    	memset(a, 0, 255);
    	int num=0;
    	
    	printf("请输入一串数\n");
    	
    	do
    	{
    		scanf("%d",a+num);
    		num++;
    	} while (getchar() != '\n');
    
    	/*int *b = new int[num];
    	memcpy(b, a, sizeof(a)/sizeof(a[0]));*/
    	QuickSort(a, 0, num);
        return 0;
    }
    
    

     

    展开全文
  • C++输入未知长度的数组

    万次阅读 多人点赞 2019-06-23 18:33:07
    假如要输入一组数字进行排序,但是不知道有多少个数字 静态数组int array[10],它的长度必须是个常数才可以定义。如果知道数组长度n,可以先cin>>n;然后用动态数组int* array = new int[n]。但是如果不知道...

    注意:该作者博客已迁移至https://buxianshan.xyz

    假如要输入一组数字进行排序,但是不知道有多少个数字

    静态数组int array[10],它的长度必须是个常数才可以定义。如果知道数组长度n,可以先cin>>n;然后用动态数组int* array = new int[n]。但是如果不知道数组长度,该怎么定义呢?

    经过查找资料,终于找到了一种解决方法。使用STL中的vector。

    STL

    STL是Standard Template Library的简称,中文名标准模板库。根本上说,STL是一些“容器”的集合,这些“容器”有 list, vector, set, map 等。STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。STL是C++的一部分,因此不用安装额外的库文件。
    在C++标准中,STL被组织为下面的13个头文件:<algorithm>、<deque>、<functional>、<iterator>、<vector>、<list>、<map>、<memory>、<numeric>、<queue>、<set>、<stack>和<utility>。

    vector

    vector(向量):是一种顺序容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组,它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。

    简单用法:
    定义一个vector,元素为 int 型的容器array,可以简单理解为一个整型数组。

    vector<int> array;
    

    在它末尾添加一个数字

    array.push_back(number);
    

    返回数组长度

    array.size();
    

    所以输入未知长度的数组可以这样写:

    #include<iostream>
    #include<vector>//引入vector头文件
    using namespace std;
    int main() {
     vector<int> array;//定义一个vector数组array
     int number;
     while (1) {
      cin >> number;
      array.push_back(number);//每输入一个数字就把它添加到数组的最后
      if (cin.get() == '\n')//如果是回车符则跳出循环
       break;
     }
     int len = array.size();//返回数组长度为len
     //下面遍历一遍数组看看对不对
     for (int i = 0; i < len; i++) {
      cout << array[i] << endl;
     }
     return 0;
    }
    

    测试截图:
    在这里插入图片描述

    已经完成了输入和保存数组

    STL的<algorithm>库中也提供了很多排序算法,遍历vector也可以使用迭代器。总之STL集成了很多优秀的算法,熟悉使用可以提高开发效率。还有很多需要学习的东西。

    参考

    • https://www.cnblogs.com/SarahZhang0104/p/5749680.html
    • https://blog.csdn.net/lizhentao0707/article/details/82224807
    • https://www.cnblogs.com/aiguona/p/7228364.html
    • https://baike.baidu.com/item/STL/70103?fr=aladdin
    展开全文
  • 1. C/C++如何动态从键盘输入

    千次阅读 2016-09-06 17:27:35
    1.  int main23() { int n,*a; cin>>n; a=new int [n];... //cout输入的次数:"; //cout数组的大小:"(); } cout ; //print_vec_operator(vec); for (i = 0; i; i++) { v.push_back(i); }
    1. 
    int main23()
    {
    	int n,*a;
    	
    	cin>>n;
    	a=new int [n];
    	for (int i=0;i<n;++i)
    		cin>>a[i];
    	for (int i=0;i<n;++i)
    		cout<<a[i]<<" ";
    	cout<<endl;
    	system("pause");
    	return 0;
    }


    2.

    	vInt v,vec;//typedef vector<int> vInt;
    	int i;
    	char cha;
    	int n=0;
    	while(cin>>cha)
    	{
    		vec.push_back(cha);
    		//n++;
    		//cout<<"输入的次数:"<<n<<endl;
    		//cout<<"数组的大小:"<<vec.size()<<endl;
    	}
    	cout <<"aaaaaaaaaa"<<endl;
    	//print_vec_operator(vec);
    	for (i = 0; i<10; i++)
    	{
    		v.push_back(i);
    	}


    展开全文
  • C++实现多种类型数据的动态输入

    千次阅读 2014-10-31 21:57:41
    在我们做类似ACM题目的时候,经常会遇到要求我们动态输入数据,本博客总结了利用Vector进行多种类型动态输入数据的方法,首先要介绍两个函数: getch 、 getchar 函数,两个函数每次都只能从控制台读入一...
  • 对于c++,我们完全可以充分利用它自己强大而方便的容器,比如vector,之所以动态声明数组,相比是大小不确定,声明太大了怕浪费空间,而vector就不用指定大小,当存的数据变多,自动扩大容量,比如假设vector默认大小是8,当你...
  • c++为函数设置动态参数

    千次阅读 2017-11-19 11:33:18
    c++为函数设置动态参数 cstdarg
  • C++ 动态链接库

    万次阅读 多人点赞 2021-06-01 09:01:19
    C++ Lib和Dll的加载加载Dll1>通过LoadLibary加载, GetProcAddress调用 加载Dll 1>通过LoadLibary加载, GetProcAddress调用 如果加载失败,通过GetLastError()获取失败原因。 下面是LoadLibary的示例代码 第一...
  • C++输入和输出

    千次阅读 2022-01-27 23:00:32
    文章目录C++输入scanf(): 从键盘(标准输入)读取数据 C++输入 scanf(): 从键盘(标准输入)读取数据 #include <iostream> using namespace std; int main() { int a; scanf("%d", &a); //...
  • c++文件输入与输出

    千次阅读 2022-03-14 09:58:45
    c++mode与cmode对应关系 c++模式 c模式 含义 ios_base::in “r” 打开以读取 ios_base::out|ios_base::trunc “w” 打开以写入,如果已存在,则覆盖 ios_base::out|ios_base::app “a” 打开以写入,只追加 ios_...
  • C++文件输入/输出流类

    千次阅读 2022-03-24 19:16:48
    文章目录文件输入/输出流类表5: 文件读写模式表6:ios_base 标识的组合意义ofstream:写入文件的...C++ 提供以下类来执行文件的字符输出和输入: ofstream:写入文件的流类 ifstream:从文件中读取的流类 fstream:流类
  • C++各种输入

    万次阅读 多人点赞 2018-07-23 12:50:44
    说明:这个是单字符的输入,用途是输入一个字符,把它的ASCALL码存入到a中 处理方法:与cin不同,cin.get() 在缓冲区遇到[enter],[space],[tab]不会作为舍弃,而是继续留在缓冲区中 (2)2个参数 用法:cin....
  • c++输入任意多个整数

    千次阅读 2021-06-06 15:54:12
    int main() { cout 请输入任意多个整数,并以回车结束输入。" ; std::vector sequence; int temp; do { cin >> temp; sequence.push_back(temp); } while (cin.get() != '\n');//此程序有个小瑕疵:最后一个整数...
  • C++的字符串输入方式

    千次阅读 2022-03-18 16:02:34
    C++字符及字符串的几种输入方法
  • c++输入和输出

    千次阅读 2021-03-02 20:10:22
    C++ 中的输入和输出 C语言中的输入输出在c++中都可以使用,在c++程序中cout (输出),cin(输入)、printf,scanf混合使用,各有优劣。 cout :标准输出(控制台) cin:标准输出(键盘) 在程序中使用cout 和cin...
  • C++输入的几种方式

    千次阅读 2020-02-08 16:11:30
    输入输出挺重要,同时可以选择的方式也很多,而本文主要指出在输入输出的时候你可能遇到的一些问题,提供一些解决的方法,并补充你可能不知道的点。另外这里的输入输出主要为从键盘输入,向屏幕输出 强烈建议大家先...
  • C++控制台输入

    千次阅读 2020-08-05 21:41:43
    1、 int main() { string str; while (getline(cin, str)) { cout<< str<<endl; } return 0; } 2、 int main() { char str[1000000]; while (gets_s(str)) { cout <...|
  • C++ ACM模式输入输出

    千次阅读 2021-12-30 23:29:04
    C++ ACM模式输入输出 以下我们都以求和作为题目要求,来看一下各种输入输出应该怎么写。 1 只有一个或几个输入 输入样例: 3 5 7 输入输出模板: int main() { int a, b, c; // 接收有限个输入 cin >> a...
  • C++输入输出流

    万次阅读 多人点赞 2019-06-11 20:46:05
    C++的标准库中,将用于进行数据输入输出的类统称为”流类“。cin是流类istream的对象,cout是流类ostream的对象。要使用流类,需要在程序中包含iostream头文件。 C++中常用的几个流类及其2相互关系: 图1中的...
  • C++输入多行数据

    千次阅读 2020-05-24 17:43:21
    输入n,表示接下来要输入n行数据 接下来输入n数据,例如: 3 1 2 3 3 4 5 12 3 65 7 这里采用getline来处理多行的输入 int _tmain(int argc, _TCHAR* argv[]) { int n; cin>>n; cin.ignore (); string s; ...
  • C++加速输入的几种方法

    千次阅读 2020-06-15 16:35:41
    1.C++IO流的同步和绑定 ...另外,在默认情况下,标准输入设备(cin)与标准输出设备(cout)绑定在一起,它保证在调用输入之前已经刷新输出缓冲区,这样也会降低读取效率。 所以,我们可以手动取消他们与C语言IO的同
  • 较早的编译器是不允许这样做的,所以...不过在一些较新的编译器如dev c++已经支持了,如下代码不会报错 #include #include int main() { int a; int i; scanf("%d",&a); int c[a]; for( i =0 ;i scanf("%d",
  • C++输入字符串的几种方法

    千次阅读 2021-01-12 14:09:27
    C++输入字符串的几种方法 C++的字符串输入方式有 1.cin>> 2.cin.get() 3.cin.getline() 4.getline() 5.gets() cin 第一种用法是逐个输入数字或者字符,中间用空格隔开。 第二种用法是读入一个字符串,遇到...
  • C++数组输入处理

    千次阅读 2020-08-27 17:40:22
    输入数据形如: [1,1,1,1,2,1,1],[5,2,5,4,5,1,6] #include <iostream> #include <stdio.h> #include <vector> using namespace std; int main(){ vector<int> vec1; vector<int>...
  • C++ cin如何输入回车停止

    千次阅读 2020-12-29 08:15:30
    Problem Description输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。Input输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。Output对于每组输入数据,输出一行,结果...
  • C++ 浮点数类型的输入输入格式

    千次阅读 2021-01-08 18:54:49
    ** C++ 浮点数类型的输入输入格式 ** 输入: float、double类型输入:%f或cin long double类型输入:%Lf 输出: float类型输出:%f或cout double类型输出:%Lf long double类型输出:%Lf
  • C++获取输入数据

    千次阅读 2019-07-21 16:53:15
    C++获取输入数据 1.获取输入为int类型的数据 int data; cin >> data; cout >> data; 2.获取输入为char类型的数据 char name[ArSize]; cin<<name;//面向单个数据输入 cin.getline(name,...
  • C++ 输入换行停止输入

    千次阅读 2020-04-04 09:45:17
    /*第一次键盘输入一个字符'c'按下enter,cin.get(c)读取字符'c'而后面的'\n'还在缓冲区内 当不使用cin.ignore()清空缓冲区时,下一次cin.get()会直接读取上一次键入的'\n',程序跳出循环结束。*/ void main() { ...
  • 头文件加入:#include"conio.h" 调用函数getch();...当输入一个字符时,就结束输入,执行下一行了 方法来于一个csdn博主,可是一不小心切出去,找不到原帖了; 裂开,找不到他的链接不能发转载 ...
  • C++输入一个数组

    千次阅读 2021-04-03 16:36:01
    template < typename T > void input(T & v, string text = "") { cout << text; cin >...void input(T * v_beg, T * v_end, string * t_beg = nullptr, string * t_end = nullptr) ...&

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 942,080
精华内容 376,832
关键字:

c++动态输入

c++ 订阅
友情链接: UploadExcel.zip