freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Βοήθεια στην C


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [4 Μηνύματα]      Bookmarks Tags: κειμένου Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
gblar


Μέλος από: 16 Οκτ 2007
Μηνύματα: 6

View users profile
ΜήνυμαΣτις: 16 Οκτ 2007 19:34    Θέμα: Βοήθεια στην C
Περιγραφή θέματος: Κρυπτογράφηση Κειμένου
Απάντηση με παράθεση  Mark this post and the followings unread

Έχω το γράψει το ποιο κάτω πρόγραμμα για μια εργασία μου.
Το πρόβλημα μου είναι ότι δεν μπορώ να το κάνω να ανοίγει ένα αρχείο που θα του δίνω και μετά να το κωδικοποιεί. Όσες φορές και να δοκιμάσω κάτι απέτυχα στο άνοιγμα του αρχείου αλλά με βάζει και το γράφω και μετά το κωδικοποιεί. Μπορεί κάποιος να με βοηθήσει;


#include <stdio.h>
#include <ctype.h>



/* Function to encode using k as key */

void enc (char k[])
{
int n = strlen(k);
int i = 0;
int c;

while ((c = getchar()) != EOF)
{
if (isalpha(c))
{
int codec = tolower(c) - 'a' + 1;
int codep = tolower(k[i]) - 'a' + 1;
int cnew = codec + codep;

if (cnew > 26)
cnew -= 26;

if (islower(c))
c = cnew - 1 + 'a';
else
c = cnew - 1 + 'A';

if (++i >= n)
i = 0;
}
putchar(c);
}
}


/* Function to decode using p as key: the reverse of the previous */

void dec (char k[10])
{
int n = strlen(k);
int i = 0;
int c;

while ((c = getchar()) != EOF)
{
if (isalpha(c))
{
int codec = tolower(c) - 'a' + 1;
int codep = tolower(k[i]) - 'a' + 1;
int cnew = codec - codep;

if (cnew < 0)
cnew += 26;

if (islower(c))
c = cnew - 1 + 'a';
else
c = cnew - 1 + 'A';

if (++i >= n)
i = 0;
}
putchar(c);
}
}


/* Main program */

int main (int argc, char * argv[])
{
/* Check if a key has been given */

if (argc < 2) {
printf("You forgot the key...\n");
return 1;
}

/* Choose between encoding and decoding */

if (argc > 2 && strcmp(argv[1], "-cipher") == 0)
dec(argv[2]);
else
enc(argv[1]);

return 0;
}
sibas
Honorary Member

Μέλος από: 21 Φεβ 2003
Templates: 1
Μηνύματα: 256+

Περιοχή: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
View users profile Visit posters website
ΜήνυμαΣτις: 16 Οκτ 2007 20:41    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Στο συγκεκριμένο δεν έχεις γράψει πουθενά να ανοίξει και να διαβάσει κάποιο αρχείο παρά μόνο την γραμμή εντολής.

[edit]Άκυρο κατάλαβα λάθος (μάλλον πρέπει να ξανά θυμηθώ την C μου)[/edit]

_________________
simply4all.net A social directory - yourlink.mobi A mobile directory for websites -
W.I.D submit a website by country and area
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 17 Οκτ 2007 09:56    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Κοίταξε τα εξής:

Τσεκάρισε ότι ο αριθμός, τιμές των παραμέτρων είναι ο σωστός. Αν περιμένεις 1 ή 2 παραμέτρους ότι ο χρήστης δεν δίνει 0 ή 3 ή 4 ή 100 παρά μόνο 1 ή 2.

παράθεση:
Το πρόβλημα μου είναι ότι δεν μπορώ να το κάνω να ανοίγει ένα αρχείο που θα του δίνω...

Το αρχείο πως θα το δίνεις με redirection των standard input, standard output ή θα περνάς το/τα filenames σαν παράμετρο; Πουθενά δεν βλέπω να ανοίγεις/κλείνεις κάποιο αρχείο. αλλά χρησιμοποιείς παντού τα standard input, standard output (πληκτρολόγιο, οθόνη αντίστοιχα).

Η σύνταξη της εντολής σου ποιά θα είναι (για κωδικοποίηση και για αποκωδικοποίηση);

Τι ακριβώς θέλεις να κάνεις;
Programmer


Μέλος από: 22 Σεπ 2007
Μηνύματα: 67

View users profile
ΜήνυμαΣτις: 17 Οκτ 2007 21:41    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Ναι! δεν δίνεις όνομα και διαδρομή αρχείου, ούτε υπάρχει και καμία εντολή που να το ανοίγει... Δες την συνάρτηση fopen και τροποποίησε τα ορίσματα τηες γραμμής διαταγών... Τροποποίηση χρειάζονται και οι συναρτήσεις ώστε να διαβάζουν από αρχείο... Αλλιώς κάνε ανακατεύθνση...
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [4 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Τώρα είναι 16 Ιαν 2017 19:13 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos