Diskuze: Čítanie špecifického riadku zo súboru
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Predpokladám, že ak spracuješ siedmy riadok a všetky jeho násobky tak už ďalej nebudeš prepisovať upravené riadky, ak hej tak to bude treba poupraviť. (kontrolu otvorenia, zatvorenia súboru, vstupu... som vynechal). fgets číta dokiaľ nenarazí na nový riadok alebo koniec súboru alebo kým nenaplní buffer.
#define BUFFER_SIZE 255
int main() {
FILE* inputFile;
FILE* outbuptFile;
char lineBuffer[BUFFER_SIZE];
char startLetter[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G'};
int lineCount = 0;
inputFile = fopen("input.txt", "r");
outbuptFile = fopen("output.txt", "w");
//prve miesto si necham pre zaciatocne pismeno
while (fgets(lineBuffer + 1, BUFFER_SIZE - 1, (FILE*)inputFile)) {
//na zaciatok vlozim pismeno podla toho kolky je riadok
*(lineBuffer) = startLetter[lineCount % 7];
//do vysledneho suboru zapisem cely upraveny riadok
fprintf((FILE*)outbuptFile, lineBuffer);
//zvysim pocitadlo riadkov
lineCount++;
}
fclose(inputFile);
fclose(outbuptFile);
return 0;
}
Ďakujem. Ja som si to spravil nakoniec takto
FILE *p_file;
p_file = fopen("predaj.txt", "r");
if (p_file == NULL) {
printf("Neotvoreny subor\n");
return NULL;
}
char riadok[50];
int i = 1;
while ((fgets(riadok, sizeof(riadok), p_file))) {
switch (i) {
case 1:
printf("meno priezvisko: %s", riadok);
break;
case 2:
printf("SPZ: %s", riadok);
break;
case 3:
printf("typ auta: %s", riadok);
break;
case 4:
printf("cena: %s", riadok);
break;
case 5:
printf("datum: %s", riadok);
i = 0;
printf("\n");
break;
}
i++;
}
Zobrazeno 3 zpráv z 3.