[C] Twee vragen

Pagina: 1
Acties:

  • Marc
  • Registratie: November 2001
  • Laatst online: 01-12-2021
(1)
hoe maak ik een programma onder linux vrij van editten?
bijvoorbeeld ik heb het volgende programma wat ik aan meerder mensen wil geven:
code:
1
2
3
4
5
6
7
8
#include <stdio.h>

main()
{
   int i = 300;
   printf("%d", i);
   return 0;
}

maar nu wil ik niet dat mensen deze code kunnen veranderen, dus dat ze niet van i 500 kunnen maken, is dit mogelijk?
Tenminste, ze mogen het wel veranderen, maar bij het compilen moet hij dan een error geven dat er iets fout is ofzo.
Kan dit?


(2)
als ik de volgende code compile:
code:
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>

main()
{
   int i = 0;
   
   while ((i < 1) || (i > 5)) {
    printf("maak uw keuze\n");
    fscanf(stdin, "%d", &i);
   }
   return 0;
}

dan werkt het wel, maar als ik bijvoorbeeld nu de letter 'c' invoer, blijft hij loopen en blijf ik de zin "maak uw keuze" zien.
hoe kan ik dit verhelpen?

hopelijk kan iemand (1 van) de vragen beantwoorden :)

Verwijderd

Voor 1:

Als je je sourcecode vrijgeeft kunnen mensen er (legaal of illegaal) zo veel in rotzooien als ze willen. C source files zijn per slot van rekening simpele textbestandjes.

  • Marc
  • Registratie: November 2001
  • Laatst online: 01-12-2021
ja dat weet ik, en ik vind het ook niet erg als mensen het veranderen, maar ik wil iets maken en dan stuurt hij een antwoord naar een server. maar het is natuurlijk niet leuk als mensen de boel dan simpel kunnen oplichten door de source te veranderen :P

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 11-09 18:38
Op dinsdag 19 maart 2002 17:56 schreef Sanchez het volgende:
(1)
hoe maak ik een programma onder linux vrij van editten?
bijvoorbeeld ik heb het volgende programma wat ik aan meerder mensen wil geven:
code:
1
2
3
4
5
6
7
8
#include <stdio.h>

main()
{
   int i = 300;
   printf("%d", i);
   return 0;
}

maar nu wil ik niet dat mensen deze code kunnen veranderen, dus dat ze niet van i 500 kunnen maken, is dit mogelijk?
Tenminste, ze mogen het wel veranderen, maar bij het compilen moet hij dan een error geven dat er iets fout is ofzo.
Kan dit?
Nee, natuurlijk niet. |:( Als ze het programma zien dan kunnen ze het gewoon Ctrl-C Ctrl-V kopieren, in een domme editor veranderen, saven onder een andere naam en compileren.
Afgezien daarvan; zolang je geen int main() schrijft moet je geen code uitdelen.
(2)
als ik de volgende code compile:
code:
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>

main()
{
   int i = 0;
   
   while ((i < 1) || (i > 5)) {
    printf("maak uw keuze\n");
    fscanf(stdin, "%d", &i);
   }
   return 0;
}

dan werkt het wel, maar als ik bijvoorbeeld nu de letter 'c' invoer, blijft hij loopen en blijf ik de zin "maak uw keuze" zien.
hoe kan ik dit verhelpen?
code:
1
2
3
4
if ( scanf("%d", &i ) != 1 ) {
  printf("Da's geen nummer !");
  exit(0);
}

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op dinsdag 19 maart 2002 18:00 schreef Sanchez het volgende:
ja dat weet ik, en ik vind het ook niet erg als mensen het veranderen, maar ik wil iets maken en dan stuurt hij een antwoord naar een server. maar het is natuurlijk niet leuk als mensen de boel dan simpel kunnen oplichten door de source te veranderen :P
serverside houden dat getal :)

Doet iets met Cloud (MS/IBM)


  • Marc
  • Registratie: November 2001
  • Laatst online: 01-12-2021
(...)
code:
1
2
3
4
if ( scanf("%d", &i ) != 1 ) {
  printf("Da's geen nummer !");
  exit(0);
}
jaaa die werkt, bedankt :)
Pagina: 1