Я пытаюсь создать программу на C, которая вводит текстовый файл и печатает определенный вывод.
Это текстовый файл в следующем формате, который я буду использовать, называемый input.txt:
1 35.026172 OfxDTW
2 11.881445 sMLZrs
3 64.033097 sQkGmn
4 96.968208 Mhbfka
5 75.157107 yWtcBI
6 27.852157 svSzwI
7 38.371393 UGGpRX
8 54.500524 LOHGPL
9 45.875275 aAwiSd
10 18.583704 OYpIiO
Я хочу поместить целое число, двойное число и строку в 3 отдельных массива, а не помещать всю строку в один массив.
Файл txt будет введен как:
program < input.txt
Вот моя основная программа:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#define MAX 10000
int
main(int argc, char* argv[]) {
int number[MAX];
double decimal[MAX];
char *string[6][MAX];
char str[6];
int a;
double b;
int i=0,k=0,j=0;
int ch=0;
while ((ch = getchar()) != EOF) {
if (scanf("%d ", &a)==1) {
number[i] = a;
i += 1;
}
if (scanf("%lf ", &b)==1) {
decimal[j] = b;
+= 1;
}
if (scanf("%s", str)==1) {
string[6][k]=str;
k += 1;
}
}
printf("n: %d, ", number[4]);
printf("d: %lf, ", decimal[4]);
printf("s: %s", string[6][4]);
return 0;
}
Для вывода я просто хочу напечатать 5-ю строку txt-файла с добавленным текстом:
n: 5, d: 75.157107, s: yWtcBI
Однако программа не печатает правильный вывод.
Кто-нибудь знает, что не так с моей программой и как я могу это исправить?