首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用文件处理从文件中读取整数并在数组中显示数据

使用文件处理从文件中读取整数并在数组中显示数据
EN

Stack Overflow用户
提问于 2015-12-16 19:43:36
回答 1查看 78关注 0票数 2
代码语言:javascript
运行
复制
# include <stdio.h>

main()
{
    FILE *fp;
    int a[10], n, i;
    char file_name[20];

    printf("enter the file name \n");
    scanf("%s", file_name);
    printf("enter number of integers \n");
    scanf("%d", &n);
    fp = fopen(file_name, "rb");
    if (fp == NULL) {
        printf("Error in opening file \n");
        return;
    }
    fread(a, 1, n, fp);
    for (i = 0; i < n; i++) {
        printf("%d \n", a[i]);
    }
}

输出:

输入文件名/home/n/t1.txt输入整数数3 1540736144 1540736144 1540736144..

在文件t1.txt中,我输入了整数{10,20,30,40.50},并存储在路径/home/n/t1.txt中。

但在输出中,它显示了一些垃圾地址。请指导我如何显示文件中存储的整数..

EN

回答 1

Stack Overflow用户

发布于 2015-12-16 20:39:41

您的文件是文本文件,它是人类可读的,并且可以在文本编辑器中进行编辑。您可以将其视为二进制文件,它存储数据的方式与存储在内存中的方式相同。这样的文件是紧凑和快速阅读,但不容易编辑或阅读的人。

C标准提供了不同的函数来处理这些文件类型。fwritefread用于二进制文件。fprintffscanffgets等是用于文本文件的。

有几种方法可以解析您的输入,因此有很多示例。读取数据的一种廉价方法是fscanf。它忽略换行符,只是将它们视为空格。如果你有更复杂的数据或者你需要良好的错误处理,这不是一个读取输入的好方法,但是对于你的小例子来说,它就可以了。您的输入似乎没有以行的形式组织。

下面的代码定义了函数scan_int,该函数从文件中读取多个整数。main函数显示了如何使用此函数。

代码语言:javascript
运行
复制
#include <stdlib.h>
#include <stdio.h>

/*
 *      Read at most max integers from a file and store them in arr.
 *      Return the number of integers read or -1 on file access error.
 *      Numbers may or may not be separated with commas.
 */
int scan_int(const char *fn, int arr[], int max)
{
    FILE *f = fopen(fn, "r");
    int n = 0;

    if (f == NULL) return -1;

    while (n < max && fscanf(f, "%d,", &arr[n]) == 1) n++;
    fclose(f);

    return n;
}

int main(void)
{
    int a[10];
    int i, n;

    n = scan_int("data.txt", a, 10);

    for (i = 0; i < n; i++) {
        if (i) printf(", ");
        printf("%d", a[i]);
    }
    printf("\n");

    return 0;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34311148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档