C语言按行读取文件/写数组到文件

#include <cstdio>
#include <cstdlib>
int main()
{
    int row, col;
    FILE *fp = fopen("In.txt", "r");
    FILE *fd = fopen("Out.txt", "w");
    if (!fp || !fd)
    {
        printf("File doesn't exist\n");
        exit(0);
    }

    fscanf(fp, "%d %d", &row, &col);
    int Data[row][col];
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            fscanf(fp, "%d", &Data[i][j]);
        }
    }
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            fprintf(fd, "%d ", Data[i][j] * Data[i][j]);
            printf("%d ", Data[i][j]);
        }
        printf("\n");
        fprintf(fd, "\n");
    }
    fclose(fp);
    fclose(fd);
    return 0;
}
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用C语言中的fgets函数按行读取文件,并将每一行存储到数组中。具体步骤如下: 1. 定义一个字符数组指针,用于存储读取到的字符串。 2. 定义一个整数变量,用于记录读取的行数。 3. 打开文件,并使用fgets函数按行读取文件,并将每一行存储到数组中。 4. 关闭文件。 下面是一个例子,演示如何按行读取文件数组中: ```c #include <stdio.h> #include <stdlib.h> #define MAX_LINES 1000 #define MAX_LENGTH 100 int main() { FILE *fp; char *lines[MAX_LINES]; char str[MAX_LENGTH]; int num_lines = 0; fp = fopen("test.txt", "r"); if (fp == NULL) { printf("Failed to open file.\n"); return 1; } while (fgets(str, sizeof(str), fp) != NULL) { lines[num_lines] = malloc(strlen(str) + 1); strcpy(lines[num_lines], str); num_lines++; } fclose(fp); // 打印读取到的字符串 for (int i = 0; i < num_lines; i++) { printf("%s", lines[i]); } // 释放动态分配的内存 for (int i = 0; i < num_lines; i++) { free(lines[i]); } return 0; } ``` 在这个例子中,我们定义了一个字符数组指针lines,用于存储读取到的字符串。同时,我们定义了一个整数变量num_lines,用于记录读取的行数。在while循环中,我们使用fgets函数按行读取文件,并将每一行存储到数组中。需要注意的是,我们使用了动态内存分配函数malloc来分配存储每一行字符串的内存空间。 最后,我们打印读取到的字符串,并释放动态分配的内存。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值