
C - Porovnanie String & Integer
Zdravím, potreboval by som pomocť porovnávaním sringu z integerom. Ide o to, že mám súbor s najlepším skóre, a potrebujem ho porovnať a aktuálnym a následne ak je to potrebné aktualizovať. Problém je v porovnávaní:
if (skore < lineArray[x]) lineArray[x]=skore;
Nakoľko sa mi to nedarí vyriešiť, tak som ďalej zatiaľ nepokračoval. Zatiaľ mám toto:
#include <stdio.h>
#include <string.h>
int main()
{
int x = 0, i, lineCount = 3, skore=1;
char line[4], *lineArray[lineCount];
FILE *file = fopen("file.txt", "r" );
if (file == NULL){
printf("Cannot open file\n");
return 1;
}
rewind(file);
printf("Top skore:\n");
while (fgets(line, sizeof(line), file) != NULL) {
lineArray[x] = malloc(strlen(line));
strcpy(lineArray[x], line);
/*if (skore < lineArray[x]) lineArray[x]=skore;*/
printf("%d. %s", x+1, lineArray[x]);
x++;
}
printf("\n");
system("PAUSE");
return(0);
}
Musíš ten string před porovnáním převést na číslo.
Viz třeba http://stackoverflow.com/questions/3420629/convert -string-to-integer-sscanf-or-atoi
Ďakujem, spravil som nasledovné:
No program sa mi vždy vypne, bez akéhokoľvek chybového hlásenia, či varovania...Čo je špatne?
Hezky sis tam udělal nekonečný cyklus.
Pravda, ďakujem. Opravil som to avšak stále sa to vypína...
Jak jsi to opravil?
if (min<=atoi(lineArray[y])) min = x; // nieje tam Y ale X.
A hodnota toho y se vykouzlila odkud?
Y tam nieje, napísal som že to bol omyl.
Tu je celý kód: main()
Přehoď ty dva řádky.
Ďakujem za postreh, ale problém pretrváva 5gr6ih
Tak si to odebuguj, abys viděl na jakém řádku to padá.
lineArray[x] = malloc(strlen(line));
A co tohle?
lineArray[x] = malloc(strlen(line) + 1);
Žiadna zmena, problém pretrváva.
Tento funguje...
Teď nějak na první pohled nevidím, v čem je rozdíl.
Pravdu-povediac ho tam nevidím ani ja...Skrátka som ten zdroják napísal odznovu a funguje, bez zmien.
Tak to jsi ho po nějaké změně nepřekompiloval.