文本文件中的数据读为0 / Null

时间:2018-05-10 12:59:12

标签: c text-files

我正在编写一个C程序来读取2个文本文件中的数据并将它们合并为1个文本文件。在读取文本文件时,我打印这些值以确保我得到正确的值,但所有出现的值都是0或Null。

以下是代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define str_len 100

//Question 2A
typedef struct {
  int atmNum;
  char name[str_len];
  char symbol[str_len];
  float atmWeight;
} PeriodocElement;

void SortedMergedFile (FILE *file1, FILE *file2);

int main () {
  FILE *file1;
  file1 = fopen("1.txt", "r");
  FILE *file2;
  file2 = fopen("2.txt", "r");

  if (file1 == NULL) {
    printf("FILE 1 DOES NOT EXIST\n");
  }
  if (file2 == NULL) {
    printf("FILE 2 DOES NOT EXIST\n");
  }
  else {
    SortedMergedFile(file1, file2);
  }
}

void SortedMergedFile (FILE *file1, FILE *file2) {
  PeriodocElement elements [150];
  int i = 0;

  while (i != 4) {
    fscanf(file1, "%d  %s  %s %f", &elements[i].atmNum, elements[i].name, elements[i].symbol, &elements[i].atmWeight);
    i++;

    printf("\n%d %s %s %4.2f", elements[i].atmNum, elements[i].name, elements[i].symbol, elements[i].atmWeight);
  }
}

这是文本文件:

08  Serium  Se 40.08
20  Sodium  Na 22.99
45  gatium  Ga 23.90
56  Manion  Ma 45.99

如果有人能发现任何我做错的话,我们将不胜感激。

1 个答案:

答案 0 :(得分:1)

  1. 您正在阅读element[i]
  2. 的组件
  3. 然后你增加i
  4. 然后您打印element[i]的组件(其中i现在更大),那些当然尚未初始化。