c语言写一个读取文件到数组的代码
时间: 2024-03-20 14:41:57 浏览: 31
以下是一个简单的C语言代码,实现读取文件内容到数组:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char filename[] = "example.txt";
char buffer[1000];
int i, count = 0;
// 打开文件
fp = fopen(filename, "r");
// 检查文件是否打开成功
if(fp == NULL)
{
printf("无法打开文件 %s\n", filename);
return 1;
}
// 读取文件内容到 buffer 数组
while(fgets(buffer, 1000, fp))
{
count++;
}
// 打印读取到的行数
printf("文件 %s 共有 %d 行\n", filename, count);
// 关闭文件
fclose(fp);
return 0;
}
```
这个代码可以打开名为 `example.txt` 的文件,将文件中的每一行读取到 `buffer` 数组中,并统计文件中的行数。其中,`fgets` 函数用于读取文件内容,每次读取一行,当读取到文件结尾时返回 NULL。
相关问题
c语言从文件中读取放到数组中
在C语言中,我们可以使用文件操作相关的函数将文件中的内容读取到数组中。
首先,需要打开文件,并创建一个指针变量来引用这个文件。可以使用fopen函数来打开文件,并将文件的路径以及打开方式作为参数传入。例如,如果文件名为data.txt,可以使用以下代码打开文件:
```c
FILE *fp;
fp = fopen("data.txt", "r");
```
接下来,我们需要声明一个数组来存储文件中的内容。可以根据实际需要选择不同类型的数组,例如int、char等。假设我们使用int类型的数组,声明一个长度为100的整型数组:
```c
int arr[100];
```
然后,我们可以使用循环结构将文件中的内容逐行读取,并将每行的值存储到数组中。使用fgets函数可以逐行读取文件中的内容,需要传入一个字符数组、读取的最大字符数以及文件指针作为参数。例如:
```c
int i = 0;
char line[100];
while (fgets(line, sizeof(line), fp)) {
arr[i] = atoi(line); //将字符串转换为整数并存储到数组中
i++;
}
```
最后,完成读取操作后,需要使用fclose函数关闭文件,释放资源。例如:
```c
fclose(fp);
```
以上就是将文件内容读取到数组中的基本步骤。读取文件内容并存储到数组中可以通过循环、条件语句和相应的文件操作函数完成。根据具体需求,还可以添加其他处理逻辑,例如数据校验、数据转换等。
C语言从文件中读取二维数组
可以使用文件操作函数来读取二维数组。以下是一个示例代码:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 4
int main() {
FILE *fp;
int arr[ROWS][COLS];
int i, j;
// 打开文件
fp = fopen("data.txt", "r");
if (fp == NULL) {
printf("无法打开文件!");
return 1;
}
// 读取数组数据
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
fscanf(fp, "%d", &arr[i][j]);
}
}
// 关闭文件
fclose(fp);
// 输出数组数据
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
在上述示例代码中,我们首先定义了一个 `ROWS` 行、`COLS` 列的二维数组 `arr`。然后,我们使用文件操作函数 `fopen()` 打开名为 `data.txt` 的文件,使用 `fscanf()` 函数逐个读取文件中的整数,并将它们存储到数组 `arr` 中。最后,我们使用 `fclose()` 函数关闭文件,输出数组 `arr` 中的数据。
请确保文件中的数据格式与程序中 `fscanf()` 函数的参数一致,否则可能会导致读取错误。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)