在 for 循环 C 中使用 fscanf 读取文件

阿米特

我在读取文件时遇到问题,循环外的第一次打印正确完成。但在 for 循环中,没有从文件中读取任何内容。如果有人知道发生了什么,我正在寻找解释或帮助。(假设文件中有 n*m 个字符串,以“\t\r\n”分隔)谢谢。

{

char *file_name{
    char *new_num="    ";
    FILE *ifp=NULL;
    int i, j, n, m;

    ifp =fopen(file_name,"r");
    if (ifp!=NULL)
    {
        fscanf(ifp,"%d %d",&n,&m );

        printf("\n  Data from the file: %d, %d \n",n,m);
    }
for (i=0 ; i< n ;i++){
    for(j=0;j<m;j++){

fscanf(ifp,"%s",new_num);
printf("\n new num : %s ",new_num);

    }}
fclose(ifp);
    return 0;
}
萨蒂亚戈拉迪

为了将某些内容读入变量或指针,您应该分配空间。

char *new_num="    ";

在这里,它在文本段中写入字符串并将该指针指向 new_num。

我对你的代码做了一些改动

#include <stdio.h>
#include <stdlib.h>
#define SIZE 50

int main()
{
    char *file_name;
    char new_num[SIZE];
    FILE *ifp=NULL;
    int i, j, n, m;

    file_name = "input.txt";
    ifp =fopen(file_name,"r");
    if (ifp!=NULL)
    {
        fscanf(ifp,"%d %d",&n,&m );
        printf("Data from the file: %d, %d \n",n,m);
    }
    for (i=0 ; i< n ;i++){
        for(j=0;j<m;j++){
            fscanf(ifp,"%s",new_num);
            printf("new num : %s\n ",new_num);
        }
    }
    fclose(ifp);
    return 0;
}

通过将名称 new_num 解释为整数,我建议您使用 apt 数据类型而不是 %s

为此,您需要修改 new_num 的数据类型

type new_num[SIZE];

并在内部fscanf使用 apt 标识符。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C中使用fscanf读取文件

来自分类Dev

在C中使用mmap或fscanf读取文件

来自分类Dev

从C中的文件读取时使用fscanf()

来自分类Dev

使用fscanf读取文件

来自分类Dev

使用fscanf从/ proc C ++读取

来自分类Dev

使用fscanf从/ proc C ++读取

来自分类Dev

Fscanf从文件C的中间读取

来自分类Dev

如何使用fscanf在c(Segmentation Fault)中读取文件?

来自分类Dev

使用fscanf在C中逐行读取文本文件

来自分类Dev

C-使用fscanf从文件中读取“ -1”

来自分类Dev

在C ++中使用fscanf从带有int和float的选项卡式文件中读取

来自分类Dev

使用fscanf()从文本文件读取

来自分类Dev

如何使用fscanf在C中扫描文件

来自分类Dev

如何使用fscanf读取文件以在C中初始化值?

来自分类Dev

C-使用fscanf从文件中读取十六进制和字符

来自分类Dev

如何使用fscanf读取文件以在C中初始化值?

来自分类Dev

在MATLAB中使用循环读取文件

来自分类Dev

在C中使用fscanf,获得奇怪的输出

来自分类Dev

使用fscanf读取C中的坐标时出现问题

来自分类Dev

您如何在C中使用fscanf()区分文件结尾和错误?

来自分类Dev

C语言中的无限循环fscanf

来自分类Dev

在C中使用fscanf读取一个十六进制值序列(一次读取2个)

来自分类Dev

在C中使用temp文件读取文件

来自分类Dev

使用fscanf()使用C解析逗号分隔的文件

来自分类Dev

使用fscanf和sscanf从文件读取格式化的输入

来自分类Dev

使用fscanf()读取时如何跳过文件中的损坏数据

来自分类Dev

在循环中使用 scanf 动态读取 C 中的字符

来自分类Dev

使用fscanf(C)从文件中提取双精度

来自分类Dev

使用fscanf(C)从文件中提取双精度

Related 相关文章

热门标签

归档