【问题标题】:trying to save data that is in an array to a file试图将数组中的数据保存到文件中
【发布时间】:2019-11-22 18:37:47
【问题描述】:

这是我保存到文件的尝试。输入文件名后,它将保存一个具有该名称的文件,但它不会打印任何内容,我不明白为什么。

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");
}

【问题讨论】:

    标签: c arrays file printing


    【解决方案1】:

    这是我刚刚编写的一个示例,旨在向您展示如何在 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);
    

    我希望这对你有用,很遗憾我无法运行你的代码,因为它缺少变量声明、包含和所有其他东西

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-18
      • 2015-05-30
      • 1970-01-01
      • 2015-12-11
      相关资源
      最近更新 更多