Portál AbcLinuxu, 18. prosince 2025 10:13
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
char input[50] = "./subor";
char znak;
int r = 0;
char rr[20];
char help[20];
int ahoj[8];
int caw;
ifstream fin(input);
int i = 0;
while (fin.get(znak))
{
if (strcmp(&znak," ") == 0)
{
ahoj[i] = atoi(help);
strcpy(help,"");
i++;
continue;
}
strcat(help, &znak);
}
for (i = 0; i < 8; i++)
cout << ahoj[i] << endl;
cout << endl;
return 0;
}
Ja to uz asi neprezijem. Odkedy programujem riesil som uz vela problemov nad ktorymi som maturoval dlho, a potom som zistil ze ide o nejaku blbost. Ale na tomto sedim od rana. Ked vymazem riadky
int r = 0; char rr[20];a program skompilujem znova, stale mi to vypise chyba sagmentacie.. ja som z toho magor a nechapem preco. Kompilator je gcc 4.0.2 na SuSE linuxe. To iste robi aj ked napr. presunim riadky
int ahoj[8]; int caw;na nejake ine miesto, alebo ked ten kod hore nejako popremiestnujem. inak program funguje normalne. prosim pomozte...
strcat(help, &znak);A celkově je nebezpečné používat omezené buffery s neomezenou možností do nich něco cpát.
strcmp(&znak," ")
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.