例如一个txt文件里有3行,第一行是1 2 3 4 5,第二行是2 3 4 5 6,第三行是4 5 6 7 8,怎么把“每行”分别存到数组里
for(i=0;i<5;i++)
.....
printf(a[n]...)
输出结果1 2 3 4 5
2 3 4 5 6
4 5 6 7 8
使用for循环语句+文件操作函数即可文件中数据读取并存到数组中。
1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。一般的C语言教程都有文件操作一章,可以找本教材进一步学习。
2、例程:
不用二维数组呢,就用一维数组a[5], 把第一行5个数赋给数组a[5]然后输出5个数,在把第二行赋给数a[5]组再输出5个数,也就是说就用1个数组
追答那就这样吧
#include
int main()
{
int a[5];
int i,j;
FILE* fp=fopen("d:\\a.txt","r");
if(fp==NULL)
{
printf("无文件");
return -1;
}
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
{
fscanf(fp,"%d",&a[j]);
printf("%d ",a[j]);
}
printf("\n");
}
fclose(fp);
return 0;
}
谢谢你了,不过for(i=0;i<3;i++)改为while(不是文件尾)更好点吧,怎么改成while循环的呢?如果是字符的话我知道这样改while((ch=fgetc(fp))!=EOF) putchar(ch);但是整型怎么写呢?
追答我以为你就只要输出前三行呢,那这样就行:
#include
int main()
{
int a[5];
int i,j;
FILE* fp=fopen("d:\\a.txt","r");
if(fp==NULL)
{
printf("无文件");
return -1;
}
while(!feof(fp)) /* 不是文件尾 */
{
for(j=0;j<5;j++)
{
fscanf(fp,"%d",&a[j]);
printf("%d ",a[j]);
}
printf("\n");
}
fclose(fp);
return 0;
}
呵呵,你真热心,谢谢了,还有一个问题,如果文件里写着1 2 3 4 5,怎么跳过前两个数字,最后程序里就输出3 4 5,是只把3 4 5存入数组,不是把1 2 3 4 5存入数组再输出3 4 5
追答那就这样
while(!feof(fp)) /* 不是文件尾 */
{
for(j=0;j<5;j++)
{
if(j<2)
{
fscanf(fp,"%d",&a[2]);
continue;
}
fscanf(fp,"%d",&a[j]);
printf("%d ",a[j]);
}
printf("\n");
}
c语言程序 从数据文件中读入数据到数组
1、首先让我们新建一个Class类。2、书写Main方法。3、让我们在C盘根目录下新建一个txt文档,内容为‘test’。4、然后让我们接着写代码,首先创建一个File对象。5、然后创建一个StringBuilder对象,用于储存读取的内容。6、接下来,我们用BufferedReader类来进行读取内容了。7、然后我们将内容来输入到控制...
如何使用C语言从TXT文件中读取如下格式的数据并存储与数组中?
1.fopen函数打开需要读取的文本,获取该文件的文件描述符 2.使用fscan()函数对文件进行读取。3.放到二维数组其实就是读取相应格式的数据,然后对应二维数组的每个位置 例如 include "stdio.h"#define M 300#define N 50void main(){ int i,j; float a[M][N]={0}; FILE *fp; if((fp=fop...
c语言将文件内容读入数组中
include <stdio.h>int main(int ac, char *pav[]){if (ac!=2){printf("程序名 要读取的文件名\\n");printf("test.exe 1.txt\\n");return 0;}FILE *fp = fopen(pav[1],"r+");if(fp == 0){printf("fail to open the file1 !\\n");return 0;}char buf[256] = {0};while...
C语言如何读取TXT文件并存入数组中?
1 以文本方式打开文件。2 循环用fscanf格式化输入数据到数组。3 判断fscanf的返回值,如果显示到达文件结尾,退出输入。4 关闭文件。5 使用数据。二、代码实现。设定文件名为in.txt, 存有一系列整型数据,以空格或换行分隔。代码可以写作:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...
C语言逐行读取txt中的数据,并保存到数组中
FILE *fin = fopen("file.txt", "r"); \/*假设文件名为file.txt*\/ int a[100], i; for (i = 0; i < 100; i++) { fscanf(fin, "%d", &a[i]); } fclose(fin); \/*此时已经读取完毕,可以进行接下来的处理了*\/ return 0;} ...
c语言 读取目录中的文件名,并将其存入数组中
这就把 前缀为sss_的文件 文件名 存入 log.txt 文件了。一个名字一行,没有别的东西。你再 读出来。include <stdio.h> main(){ FILE *fp;char str[30][50]; \/\/ 假定文件数不超过30个 int i,n=0;system("dir sss_* \/B > log.txt");fp=fopen("log.txt","r");while(1){...
c语言程序 从数据文件中读入数据到数组
先打开文件。自己写过getline函数,取文本的一行保存到一个字符串中。用malloc函数给line分配空间。对于第一行,取特定的字符串line取代替它,如果第二行是空行也这么做 在建立一个字符串数组,用strdup将他们放入字符串数组strline[i]中。构造一个结构数组,将得到的字符串line用strtok(line,"")函数...
如何用C语言读取txt文件中的数据到程序的数组中?
main( ) { FILE *fin;int a[50][2];int i;fin = fopen("abc.txt","r"); \/\/ 打开文件,按读的方式打开 for (i=0;i<50;i++)fscanf(fin,"%d %d", &a[i][0], &a[i][1]); \/\/ 循环读 fclose(fin); \/\/关闭文件 for (i=0;i<50;i++) printf("%d %d\\n",a[...
c语言读取文件然后保存到数组中
1,文件里的数据是不同类型的,既有字符类型的,也有整型的。2,遇到这种情况,可以按照字符串类型定义数组。例如,char s[100][4];3,编写程序时,一个一个字符读取,遇到空格就完成了一个数据读取。遇到换行,就换到下一行。这道题目的关键是把数据类型当作字符串类型处理。你看下面的程序中,把...
C语言中如何读取文件中的汉字并将其存入数组中?
以文本方式读打开原文件;按字符方式读取文件,每读一个字符判断一下是否为汉字编码(<0),若是则存入字符数组,不是则跳过读取下一个字符,直到文件结束。设原文件在当前目录下,名为123.txt,举例代码如下:\/\/#include "stdafx.h"\/\/If the vc++6.0, with this line.#include "stdio.h"#...