Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - aprire file da programma
Forum - C/C++ - aprire file da programma

Avatar
Andrea477 (Normal User)
Newbie


Messaggi: 3
Iscritto: 23/03/2019

Segnala al moderatore
Postato alle 10:58
Sabato, 23/03/2019
Salve a tutti, sono nuovo in questo forum, ed avrei bisogno di un aiuto per un programma c++.
Vi informo che utilizzo Visual Studio Enterprise 2017 come IDE. Allora, andiamo al punto, programmo già da un paio d'anni ma non mi sono mai inbattuto nel creare un programma che aprisse dei file, mi spiego meglio io vorrei creare un programma che quando un file viene premuto si apre questo programma che me lo visualizza. Ho lavorato diverse volte con i file usando fstream e i puntatori a file (FILE *nomepuntatore) con le rispettive funzioni. Quindi la mia domanda è c'è un modo che prende il nome del file che si vuole aprire e passarlo al programma. Grazie a tutti in anticipo.

PM Quote
Avatar
Andrea477 (Normal User)
Newbie


Messaggi: 3
Iscritto: 23/03/2019

Segnala al moderatore
Postato alle 11:39
Sabato, 23/03/2019
Qui sotto vi posto il codice
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <Windows.h> //la utilizzo per la system("pause") visto che in VS il programma al return del main si chiude
  3.                                    automaticamente
  4. #include <fstream>
  5.  
  6. using namespace std;
  7.  
  8. char File[120];
  9. void print(char name[60]);
  10.  
  11. int main()
  12. {
  13.         char file[60];
  14.  
  15.         for (int i = 0; i < 60; i++)
  16.                 file[i] = ' ';
  17.  
  18.         //Enter the file name
  19.         strcpy(file, "file.txt"); //è questa la parte che voglio cambiare vorrei che il file.txt lo prenda il programma
  20.         print(file);
  21.  
  22.         system("PAUSE");
  23.         return 0;
  24. }
  25.  
  26. void print(char name[60])
  27. {
  28.         FILE *f;
  29.         f = fopen(name, "rb");
  30.        
  31.         if (f != NULL)
  32.         {
  33.                 while (!feof(f))
  34.                 {
  35.                         for (int i = 0; i < 120; i++)
  36.                                 File[i] = ' ';
  37.                         fread(&File, sizeof(File), 1, f);
  38.                         cout << File;
  39.                         if (!feof)
  40.                                 break;
  41.                 }
  42.                 cout << endl;
  43.                 fclose(f);
  44.         }
  45.         else
  46.                 cout << endl << "File not found" << endl;
  47.        
  48. }


Ultima modifica effettuata da lumo il 24/03/2019 alle 17:00
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5848
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 12:01
Sabato, 23/03/2019
Utilizza i tag CODE (vedi tasto Code del forum) per il codice altrimenti il codice resta confuso.

Non utilizzare la system con VS. Basta avviare il programma con Ctrl-F5 al posto di F5

Ultima modifica effettuata da nessuno il 23/03/2019 alle 12:02


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Andrea477 (Normal User)
Newbie


Messaggi: 3
Iscritto: 23/03/2019

Segnala al moderatore
Postato alle 13:54
Sabato, 23/03/2019
ok grazie per l'informazione ora lo tolgo

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5848
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:14
Sabato, 23/03/2019
Ok ma posta il codice correttamente ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1601
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 19:32
Sabato, 23/03/2019
Puoi fare un maniera tale che io nome del file sia il primo argomento passato.
Apri il file con fopen(argv[1],...) Se adotti questa strategia puoi aggiungere una chiave nel registro di sistema di Windows affinché al doppio click su un file con la tua estensione venga eseguito il tuo programma.

PM Quote