我正在编写一个 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
如果有人能发现我做错了什么,我将不胜感激。
最佳答案
- 您正在阅读
element[i]
的组件。 - 然后你增加
i
。 - 然后你打印
element[i]
的组件(其中i
现在是一个更大的元素),而那些当然还没有已初始化。
关于c - 文本文件中的数据读取为 0/Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50273518/