按行读取txt文件数据到一维数组用c语言实现
时间: 2023-04-11 14:01:25 浏览: 134
可以回答这个问题。在C语言中,可以使用fopen()函数打开txt文件,然后使用fgets()函数按行读取数据,再将数据存储到一维数组中。具体实现可以参考以下代码:
```c
#include <stdio.h>
#define MAX_LINE_LENGTH 100
int main() {
FILE *fp;
char line[MAX_LINE_LENGTH];
int data[MAX_LINE_LENGTH];
int i = 0;
fp = fopen("data.txt", "r");
if (fp == NULL) {
printf("Failed to open file\n");
return 1;
}
while (fgets(line, MAX_LINE_LENGTH, fp) != NULL) {
data[i++] = atoi(line);
}
fclose(fp);
// Do something with the data array
return 0;
}
```
这段代码可以打开名为"data.txt"的文件,按行读取数据并存储到data数组中。注意,这里假设每行数据都是整数。如果数据类型不同,需要根据实际情况进行修改。
相关问题
c语言实现读取txt文件到一维数组中!
可以使用C语言中的文件操作函数,如fopen、fscanf等,将txt文件中的数据读取到一维数组中。具体实现方法可以参考以下代码:
```c
#include <stdio.h>
#define MAX_SIZE 1000
int main()
{
FILE *fp;
char filename[] = "data.txt";
int arr[MAX_SIZE];
int i = 0;
fp = fopen(filename, "r");
if (fp == NULL) {
printf("Failed to open file %s\n", filename);
return -1;
}
while (fscanf(fp, "%d", &arr[i]) != EOF) {
i++;
}
fclose(fp);
// 打印数组中的数据
for (int j = 0; j < i; j++) {
printf("%d ", arr[j]);
}
return 0;
}
```
以上代码中,我们首先定义了一个最大长度为1000的一维数组arr,然后使用fopen函数打开名为"data.txt"的文件,如果打开失败则返回-1。接着使用fscanf函数从文件中读取数据,并将其存储到数组中,直到读取到文件末尾。最后使用fclose函数关闭文件,打印数组中的数据。
C++用fopen,fread读取一维数组的txt文件生成一维数组
可以使用C语言中的标准库函数`fopen()`和`fread()`来读取txt文件中的数据,并将其存储到一维数组中。以下是一个简单的示例代码:
```c++
#include <stdio.h>
#include <stdlib.h>
int main() {
// 打开txt文件
FILE *fp = fopen("data.txt", "r");
if (fp == NULL) {
printf("文件打开失败!\n");
return 0;
}
// 获取文件大小
fseek(fp, 0, SEEK_END);
int size = ftell(fp);
fseek(fp, 0, SEEK_SET);
// 读取txt文件中的数据到数组中
int arr[100];
int n = fread(arr, sizeof(int), size / sizeof(int), fp);
// 输出数组中的数据
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
// 关闭文件
fclose(fp);
return 0;
}
```
在上述代码中,我们首先使用`fopen()`函数打开了名为“data.txt”的txt文件,然后使用`fseek()`函数获取了文件大小,并使用`fread()`函数逐个读取文件中的数据,并将其存储到数组中。最后,我们输出了数组中的数据,并关闭了文件。
需要注意的是,`fread()`函数返回的是成功读取的数据元素个数,而不是字节数。因此,在计算读取到的数据个数时,需要将`size`(即文件大小)除以`sizeof(int)`(即每个整数占用的字节数)来得到元素个数。