在C中读写.txt文件

在C中读写.txt文件,c,C,我试图让这段代码从计算机中读取一个.txt文件,将其信息复制到一个可用的声明矩阵,然后打印,不是文件,而是读取文件时生成的矩阵。不知什么原因,我似乎不能使它工作。它进入读取阶段,但无法存储数据 #include<stdio.h> #include<stdlib.h> #include<math.h> void main (void) { float matriz[20][20]; NOME_ARQUIVO: printf("Insira o

我试图让这段代码从计算机中读取一个.txt文件,将其信息复制到一个可用的声明矩阵,然后打印,不是文件,而是读取文件时生成的矩阵。不知什么原因,我似乎不能使它工作。它进入读取阶段,但无法存储数据

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

void main (void)
{
    float matriz[20][20];

    NOME_ARQUIVO: printf("Insira o nome do arquivo que contem as informacoes da secao U \n");

    char na[100];

    FILE *input;

    gets(na);

    printf("Nome do arquivo procurado : %s\n",na);
    input = fopen(na , "r");

    if (input == NULL)
        {
            printf("Arquivo inexistente ou incompativel.\n");
            goto NOME_ARQUIVO;
        }
    else{

    int i , j ;
    for (i=0;i<20;++i)
        for (j=0;j<20;++j)
            fscanf(na,"%f",&matriz[i][j]);
    fclose(input);

    for (i=0;i<20;i++)
        printf("\n");
        for (j=0;j<20;j++)
            printf("%f",matriz[i][j]);
            }
}
#包括
#包括
#包括
真空总管(真空)
{
浮动矩阵[20][20];
NOME_ARQUIVO:printf(“NOME do ARQUIVO que contem as informacoes da secao U\n”);
char-na[100];
文件*输入;
获取(na);
printf(“Nome do arquivo procurado:%s\n”,na);
输入=fopen(na,“r”);
如果(输入==NULL)
{
printf(“Arquivo不存在或不兼容。\n”);
goto NOME_ARQUIVO;
}
否则{
int i,j;

对于(i=0;i您打开该文件是为了读取,而不是写入。该文件现在是
input
,但您没有在任何其他地方引用
input


使用
input=fopen(na,“r+”)打开文件
读取和写入,但不显示写入文件的任何代码
输入

此函数不安全,已从语言中删除。此外,请重新考虑使用
转到
。有合法的用途,但这不是其中之一。我的意思是打开它进行读取。其目的是读取每个矩阵[][]从文件中提取,并将其存储在代码中声明的文件中。关于输入,我在文件打开时将其与“na”关联。我以为应该是这样的,但你说问题是你不能“存储”它,我认为这意味着你不能将其写入文件。“我在文件打开时将其与“na”关联”--
na
是包含文件名的字符串,
input
是由
fopen()
返回的文件指针,并且是
fscanf()
等所需的。谢谢@DavidBowling,我在混乱中错过了它。