Я пытаюсь прочитать числа из нескольких текстовых файлов, начиная с «цифр», и рассчитать сумму. Я получаю некоторые случайные числа, которых нет в открываемом файле. Я попытался инициализировать массив в 0, но это просто сделало все 0 на выходе. Я считаю, что это проблемный раздел
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
DIR *d;
struct dirent *dir;
int fileAndSum(){
int sum = 0, i = 0;
int nums[100];
FILE* fptr = fopen(dir->d_name,"r");
fputs("11111111111111111", fptr);
for(i = 0; i <10; i++){
fscanf(fptr,"%d", &nums[i]);
printf("%d\n", nums[i]);
sum+=nums[i];
}
printf("%s\n", "----------sum--------------");
printf("%d\n", sum);
fclose(fptr);
Остальное
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
DIR *d;
struct dirent *dir;
int fileAndSum(){
int sum = 0, i = 0;
int nums[100];
FILE* fptr = fopen(dir->d_name,"r");
for(i = 0; i <10; i++){
fscanf(fptr,"%d", &nums[i]);
printf("%d\n", nums[i]);
sum+=nums[i];
}
printf("%s\n", "----------sum--------------");
printf("%d\n", sum);
fclose(fptr);
}
int main(void) {
d = opendir("numdir");
char strhold[50] = "numbers";
char fileName[50];
while ((dir = readdir(d)) != NULL) {
printf("%s\n", dir->d_name);
if(strstr(dir->d_name, strhold)){
printf("%s%s%s\n", "----------Now reading ",dir->d_name,"--------------");
fileAndSum();
printf("%s\n", "----------Next file--------------");
}
}
closedir(d);
return(0);
}