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

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

Ανοιγμα αρχειου αναλογα με το ορισμα που το δινω


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


Μέλος από: 26 Μαη 2009
Μηνύματα: 23

View users profile
ΜήνυμαΣτις: 05 Ιουν 2009 06:10    Θέμα: Ανοιγμα αρχειου αναλογα με το ορισμα που το δινω Απάντηση με παράθεση  Mark this post and the followings unread

θελω να χρησιμοποιησω την fopen για να γραψω το αρχειο. απλα θελε αναλογα με το ορισμα που θα δινω να αλλαζει και το αρχειο που γραφω. για παραδειγμα αν το αρχειο program το εκτελω με program -a programma να ονομαζεται το αρχειο programma.txt και αν program -a kwdikas να ονομαζεται kwdikas.txt.
virxen75


Μέλος από: 18 Φεβ 2009
Μηνύματα: 256+
Περιοχή: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
View users profile
ΜήνυμαΣτις: 05 Ιουν 2009 09:47    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

κώδικας:


   #include <stdio.h>
   #include <stdlib.h>
   #include <string.h>
 
   int main( int argc, char *argv[] )
   {
       char *filename;
     if (argc!=3){
                  printf("\nWrong parameters.Correct syntax is\nprogram -a filename\n");
                  exit(0);
                  }
      filename=strcat(argv[2],".txt");
      printf("\nfilename=%s",filename);
        FILE * pFile;
  pFile = fopen (filename,"w");
    fclose(pFile);
 
         
     
     return 0;
   }



το -a δεν εξηγείς τι ακριβώς κάνει και δεν το έλαβα υπόψιν
βέβαια θέλει και κάποιους άλλους ελέγχους για να ελέγχεις ότι
ο χρήστης έβαλα σωστά τις παραμέτρους
π.χ. program -xx 1234.txt το δέχεται
james_


Μέλος από: 26 Μαη 2009
Μηνύματα: 23

View users profile
ΜήνυμαΣτις: 06 Ιουν 2009 20:46    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

[quote="virxen75"]
κώδικας:


   #include <stdio.h>
   #include <stdlib.h>
   #include <string.h>
 
   int main( int argc, char *argv[] )
   {
       char *filename;
 //char *files;
     if (argc!=3){
                  printf("\nWrong parameters.Correct syntax is\nprogram -a filename\n");
                  exit(0);
                  }
//files=argv[2];
//filename=strcat(files,".txt");      printf("\nfilename=%s",filename);
        FILE * pFile;
  pFile = fopen (filename,"w");
    fclose(pFile);
 
         
     
     return 0;
   }



ευχαριστω . αυτο ηθελα. αλλα εχω ενα μικρο προβλημα.  εβαλα σχολια στη παραλλαγη του προβληματος που ειχες φτιαξει. επειδη δε θελω να χανω το ορισμα του argv[2] το εβαλα στο files για να αλλαξεθ μονο το files. ομως ετσι αλλαζουν και το files kai to arv[2]. κατι πρεπει να παιζει με τους δεικτεσ
virxen75


Μέλος από: 18 Φεβ 2009
Μηνύματα: 256+
Περιοχή: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
View users profile
ΜήνυμαΣτις: 07 Ιουν 2009 01:25    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

το files=argv[2];

έχει σαν αποτέλεσμα να ταυτίζονται οι μεταβλητές αφού πλέον δείχνουν στην ίδια
μνήμη έτσι αλλαγή της μίας σημαίνει και ίδια αλλαγή στην άλλη


πιο κάτω σου δείχνω έναν τρόπο να το αποφύγεις
ίσως υπάρχει και καλύτερος αλλά τέτοια ώρα μόνο αυτό μου έρχεται

δες τα αποτελέσματα στην οθόνη και χρησιμοποίησε ότι θες

κώδικας:

   #include <stdio.h>
   #include <stdlib.h>
   #include <string.h>
 
   int main( int argc, char *argv[] )
   {
       char files[20];
       char filename[20];
     if (argc!=3){
                  printf("\nWrong parameters.Correct syntax is\nprogram -a filename\n");
                  exit(0);
                  }
      printf("\nargv[2]=%s",argv[2]);//parametros
      strcpy(files,argv[2]);//antigrafi parametroy se string
      strcpy(filename,argv[2]);//omoios
      int a =strlen(filename);
      filename[a]='.';
      filename[a+1]='t';
      filename[a+2]='x';
      filename[a+3]='t';
      filename[a+4]='\0';//pros8eto to .txt
      printf("\nfiles=%s",files);
      printf("\nargv[2]=%s",argv[2]);
      printf("\nfilename=%s",filename);
      printf("\nfiles=%s",files);
      printf("\nargv[2]=%s",argv[2]);
      strcpy(files,filename);
      printf("\nfilename=%s",filename);
      printf("\nfiles=%s",files);
      printf("\nargv[2]=%s",argv[2]);
      FILE * pFile;
  pFile = fopen (filename,"w");
  fclose(pFile);
 
         
     
     return 0;
   }
dva_dev
Script Master

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

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 07 Ιουν 2009 12:56    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Μια παραλλαγή του κώδικα του virxen75
κώδικας:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main( int argc, char *argv[] )
{
    FILE *pFile;
    char filename[_MAX_FNAME];

    if ((argc != 3) ||
        (strcmp(argv[1], "-a") != 0))
    {
        printf("Syntax:\n%s -a <filename>\n", argv[0]);
        return 1;
    }

    strcpy(filename, argv[2]);
    strcat(filename, ".txt");

    pFile = fopen (filename,"w");
    //Write to file...
    fclose(pFile);
    return 0;
}
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [5 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Τώρα είναι 03 Δεκ 2016 06:37 | 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