尝试将数组中的数据保存到文件

时间:2019-11-22 18:37:47

标签: c arrays file printing

这是我尝试保存到文件中的尝试。输入文件名后,它将保存具有该名称的文件,但不会在其中打印任何内容,我也无法理解为什么。

if (menuoption == 6)
{
    printf("please enter a file name\n");
    scanf("%s", filename);
    filepointer = fopen(filename, "a");
    if (filepointer == NULL);
    {                           
        printf("unable to open file name: %s\n", filename);
        continue;
    }

    fprintf(filepointer, "decimal values:");

    for (int i = 0; i < doubcount; i++)
    {
        fprintf(filepointer, "%lf \n", doubles[i]);
    }

    fprintf(filepointer, "\n");

    fprintf(filepointer, "integer values: ");

    for (int i = 0; i < intcount; i++)
    {

        fprintf(filepointer, "%d\n", ints[i]);
    } 

    fprintf(filepointer, "\n");
}

1 个答案:

答案 0 :(得分:0)

这里是我刚刚写的一个样本,向您展示如何使用C处理文件

#include <stdio.h>
    int main(void){
            char* filename;
            FILE* fp;
            printf("Enter a file name:\n");
            scanf("%s", filename);
            fp = fopen(filename, "w");
            if(fp == NULL){
                    fprintf(stderr, "unable to open file name: %s\n", filename);
                    return -1;
            }
            fprintf(fp, "Testing\n");
            fclose(fp);
    }

首先,您应该在fopen函数中使用“ w”而不是“ a”

fp = fopen(filename, "w");

您可以在此处http://man7.org/linux/man-pages/man3/fopen.3.html

了解有关打开文件的模式的信息。

然后,您应该始终在读取或写入文件后关闭文件,因此请将此行添加到代码中

fclose(fp);

我希望这对您有用,但是我无法运行您的代码,因为它缺少变量声明,包含和所有其他内容