C语言格式化输入不定长数组

先随便写写,有空再整理。

直接贴代码

#include <stdio.h>
#include <stdlib.h>

//从一行标准输入中格式化输入一个不定长数组
void inputVec ();

//读入给定行数的不定长数组
void inputVecs1 ();

//读入不确定行数不定长数组
void inputVecs2 ();

void main ()
{
	inputVecs1 ();
	return;
}

void inputVecs1 ()
{
	while (!feof(stdin))
	{
		int size = 0;
		int i = 0;
		int k = 0;
		int arr[64] = {0};

		i = scanf ("%d", &arr[size]);
		k = getchar();
		++size;
		while (EOF != i && ‘,‘ == k && 64 >= size)
		{
			i = scanf ("%d", &arr[size]);
			k = getchar();
			++size;
			printf ("%d:%d ", i, k);
		}

		printf ("\n%d\n",size);

		for (i = 0; i < size; ++i)
		{
			printf ("%d ", arr[i]);
		}
		printf ("\n");

	}
}

void inputVecs2 ()
{
	int n = 0;
	int j = 0;
	scanf ("%d", &n);
	while (j < n)
	{
		int size = 0;
		int i = 0;
		int k = 0;
		int arr[64] = {0};

		i = scanf ("%d", &arr[size]);
		k = getchar();
		++size;
		while (EOF != i && ‘,‘ == k && 64 >= size)
		{
			i = scanf ("%d", &arr[size]);
			k = getchar();
			++size;
			printf ("%d:%d ", i, k);
		}

		printf ("\n%d\n",size);

		for (i = 0; i < size; ++i)
		{
			printf ("%d ", arr[i]);
		}
		printf ("\n");

		++j;
	}
}

void inputVec ()
{
	int size = 0;
	int i = 0;
	int k = 0;
	int arr[64] = {0};

	i = scanf("%d", &arr[size]);
	k = getchar();
	++size;
	while (EOF != i && size <= 64 && ‘,‘ == k)
	{
		i = scanf("%d", &arr[size]);
		k = getchar();
		++size;
		printf ("%d:%d ", i, k);
	}
	printf ("\n%d\n",size);

	for (i = 0; i < size; ++i)
	{
		printf ("%d ", arr[i]);
	}
	printf ("\n");
}

  测试数据(控制台输入的话就变成输入一行然后一个回车键,可以把所有内容存到txt中然后重定向):

1,2,3,4,5,6,7,8,9,10
11,12,13,14,15,16,17,18,19,20
21,22,23,24,25,26,27,28,29,30

  

时间: 2024-10-22 17:49:42

C语言格式化输入不定长数组的相关文章

(STL初步)不定长数组:vector

STL是指C++的标准模板库.(存储着一些常用的算法和容器) vector是一个不定长数组.它把一些常用的操作"封装"在vector类型内部. 例如,a是一个vector.1对元素的操作有,可以用a.size()读取它的大小,a.resize()改变它的大小,a.push_back()向尾部添加元素,a.pop_back()删除最后一个元素.2对数组的操作有:a.clear()清空,a.empty()测试是否为空. vectors是一个模板类. 它的使用声明:vetor<int&

STL map vector(不定长数组)

啊啊啊!记住啊   多看几遍应该就好. 1 #include<cstdio> 2 #include<iostream> 3 #include<string> 4 #include<cctype>//1.测试字符ctype.h是C标准函数库中的头文件,定义了一批C语言字符分类函数(C character classification functions),用于测试字符是否属于特定的字符类别,如字母字符.控制字符等等.既支持单字节字符,也支持宽字符. 5 #in

不定长数组:vector

vector就是一个不定长数组,另外它把一些常用操作"封装"在了vector类型内部.例如,若a是一个vector,可以用a.size()读取它的大小,a.resize()改变大小,a.push_back()向尾部添加元素,a.pop_back()删除最后一个元素,clear()清空,empty测试是否为空. vector是一个模板类,所以需要用vector<int> a或者vector<double> b这样的方式来声明一个vector.vector<i

C语言格式化输入输出函数

一:格式输出函数printf() 1.调用形式一般为:printf("格式化控制字符串",输出表列): 2.格式化控制字符串用于指定输出格式,它有三种形式: 1.格式说明符:规定了相应输出表列内容的输出格式,以%打头,如%d.%o等 2.转义字符:用来输出转义字符所代表的控制代码或者特殊字符,比如常用的‘\n'.‘\t’ 3.普通字符:需要原样输出的字符. 3.输出表列为若干需要输出的数据项,它与格式说明符在数量和类型上一一对应: 4.格式字符m指定输出数据所占宽度,n对实数表示输出n

不定长数组取值交叉遍历组合生成算法

代码例如以下: #include <stdio.h> int factor[3][4] = { {0, 1, 2, 3}, {0, 1}, {0, 1, 2}, }; int lengths[3] = {4, 2, 3}; void recurisionAccess(int factor[3][4], int lengths[3], int colum, int row) { int i = 0; int j = 0; int k = 0; int len = 0; int len_num =

【STL初步】不定长数组:vector + 集合:set + 映射:map

一.vector 为了节省空间,有时我们会使用动态数组vector. 定义动态数组 vector<类型名>变量名 vector<int>que //定义que为一个int类型的动态数组 vector<char> a //定义 a 为一个char 类型的动态数组 vector<data> c //其中data为自定义的数据类型,可以为结构体  指令 a[i] ---- 返回动态数组中的第i个元素a.empty() ---  若动态数组为空,则返回true,否则

【OI】C++STL 不定长数组 vector

Vector 本来是向量的意思,只不过在用法上类似于一个不限长度的数组. 定义语法:vector<数据类型> 名称; 一.头文件:<vector> (bits/stdc++请忽略) 二.常用方法: a.size(); //读取大小 a.resize(): //改变大小 a.push_back(); //向尾部添加元素 a.pop_back(); //删除最后一个元素 a.clear(); //清空 a.empty(): //返回是否为空 三.遍历 STL的数据类型几乎(也许是全部)

STL之Vector(不定长数组)

vector是同一种对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库将负责管理与存储元素相关的类存.引入头文件 #include<vector> 1.vector对象的定义和初始化 vector<T> v1 vector保存类型为T的对象.默认构造函数,v1为空 vector<T> v2(v1) v2是v1的一个副本 vector<T> v3(n,i) v3包含n个值为i的元素 vector<T> v4(n) v4含有

java二维不定长数组测试

package foxe; import javax.swing.JEditorPane;import javax.swing.JFrame; /** * @author fooxe * * @see:Test.java * * */public class Test extends JFrame { private String arr[][] = null; private String str[][] = { { "Aa", "Ab", "Ac&qu