C语言给我们提供了丰富的输入输出方法,但是当我们需要读取多行由空格和空行分割的数据,并且每行数据的数量不确定时,貌似没有直接可以用的方法。
例如,将以下数据读入一个二维数组:
4
0 -2 -7 0 9 2 -6 2
-4 1 -4 1 -1
8 0 -2
第一行是二维数组的维数,接下来的四行是按行的输入数据,其中包含一个空行,我们需要将这些数据读入到一个二维数组中,直接使用scanf,fscanf,sscanf都不行,下面采用的方法是fgets读取每行,然后再逐个数据解析的方法:
#include<stdio.h>
int main()
{
//variables definition
int a[101][101];
char str[2000];
int g=1,h=1,count=0,len,s,n,i;
scanf("%d",&n);
while(fgets(str,100,stdin)!=NULL)
{
i=0;
s=0;
while(str[i]!='\0')
i++;
len=i-2;
while(s<=len)
{
i=s;
while((str[s]<='9'&&str[s]>='0')||str[s]=='+'||str[s]=='-')
s++;
a[g][h]=atoi(str,i,s-1);
count++;
h++;
if(h>n)
{
h=1;
g++;
}
if(g>n)
break;
while(s<=len&&str[s]!='+'&&str[s]!='-'&&!(str[s]<='9'&&str[s]>='0'))
s++;
}
if(count>=n*n)
break;
}
}
int atoi(char* num,int s,int e)
{
int result=0,flag=0;
if(s>e||num==NULL)
{
printf("Error!\n");
return;
}
if(num[s]=='-')
flag=1;
if(num[s]=='+'||num[s]=='-')
s++;
while(s<=e)
{
if(num[s]<='9'&&num[s]>='0')
result=result*10+(num[s]-'0');
else
{
printf("Error!\n");
return;
}
s++;
}
if(flag)
result=result*(-1);
return result;
}
atoi方法还有好多没有考虑的地方,不过在一般的读取应该是够用了。
分享到:
相关推荐
用C++语音实现一维数组二维数组写入txt,从txt中读取数据存到一维数组、二维数组,数组用指针表示
c程序将excel表格数据读取到二维数组
labview读取二维数组中所有数据,涉及到labview中数组VI的熟练使用。
可以读取二维数组所有数据,基于LabVIEW编程语言
java 将一个二维数组存到txt文件里,然后再读取。可运行
读BMP位图的像素到二维数组,二维数组是动态申请的。将读入的二维数组中的像素显示出来,看是否与原图相符合,并且将像素点的值写入data.txt文本文档
二维数组基本操作的编程实现(2学时,验证型),掌握数组的建立、读取数据、压缩存储等基本操作的编程实现,存储结构可以在顺序结构或链接结构中任选,也可以全部实现。也鼓励学生利用基本操作进行一些应用的程序...
实现一个“可变长二维数组”,这个二维数组的行数可由输入决定,每行的元素个数仍可由输入决定。每个数组元素值都是1. 执行结果如下: 请输入行数: 5 请输入第1行的元素个数: 20 请输入第2行的元素个数: 34 请...
C#编写代码,可以读取任何版本的Excel文件,并写入二维数组中。
易语言二维数组分页源码,二维数组分页,取随机汉字,子_初始化,子_读取分页,子_数据到二维数组
应用labview读取二维数组的程序,比较简单,适合初学labview的新手拿来学习练手。也可作为labview课程作业参考。
能读BMP位图的像素到二维数组,二维数组是动态申请的。将读入的二维数组中的像素显示出来,看是否与原图相符合,并且将像素点的值写入data.txt文本文档
读取文本数据c程序到二维数组
ajax里response返回的数据是一个二维数组,比如这样的[{key,val},{key,val},{key,val}],这个就是传说中的json数据了,以这样的形式数据传到前台,实现菜单联动下拉框;具体怎么样,详情请仔细查看以下内容
用于无人机影像处理读取外方为元素到数组,实现文本文件读入,并制作成二维数组 ,分两种情况,以逗号分隔,和以不定数目空格进行分隔。
这是一个关于二维数组的小程序,适合C++初学者,仅供参考。
小弟水平有限,二维数组的理解不是很透彻。研究了三个小时终于弄明白如何读取并生成购物列表。表骂我。我只是为了让更多像我一样想研究二维数组写购物车的PHPer提供一点思路。 文件 car.php 此处实例化购物车并且 ...
可以将excel表格里面的数据存到test.txt文档中然后运行程序可以将表格中的数据读到一个三维数组里面,然后进行筛选 数学建模可用
java 将一个二维数组存到txt文件里,然后再读取。可运行
VC6.0源代码:基于MFC,采用COpenfileDlg,CStdioFile等类实现从txt文件读取二维数组(读取后可用于数据处理,本程序未加处理)。程序实现保存对话框,可将二维数组保存为txt文件。 PS:txt文件中数据用一位空格隔开...