首页 > 解决方案 > 用C将数字序列写入文件

问题描述

我是编程新手。我写了一个程序,对数字执行某种操作,我现在需要做的就是从文件中读取这些数字并将它们写入不同的文件。我正在使用这个代码:char number[20]; int 值、选择、结果;

{
    FILE *file_in;
    file_in = fopen("roman.txt", "r");


    while (!feof(file_in))
    {
        fscanf(file_in, "%s", number);
        fclose(file_in);
        FILE *file_out;

        result = RomantoArabic(number, value);

        file_out = fopen("arabic.txt", "a");
        fprintf(file_out, "%d\n", result);
        fclose(file_out);
    }

    return 0;

但它只写入序列中的最后一个数字。如果有人能告诉我我做错了什么,我将不胜感激。谢谢玛丽亚

标签: c

解决方案


首先尝试在while循环之外打开文件并再次运行它并在循环后关闭文件。

{
    FILE *file_in;
    File *file_out;
    file_in = fopen("roman.txt", "r");
    if (file_in == NULL) {
      printf("Error: unable to open "roman.txt.\n");
    exit(EXIT_FAILURE);
     }

    file_out = fopen("arabic.txt", "a");
     if (file_out == NULL) {
       printf("Error: unable to open ‘arabic.txt’\n");
    exit(EXIT_FAILURE);
     }   

    while (!feof(file_in))
    {
        fscanf(file_in, "%s", number);
        result = RomantoArabic(number, value);
        fprintf(file_out, "%d\n", result);
    }
      fclose(file_in);
      fclose(file_out);

    return 0;

推荐阅读