Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - aiuto per fopen!
Forum - C/C++ - aiuto per fopen!

Avatar
Il_maca (Normal User)
Rookie


Messaggi: 49
Iscritto: 19/12/2008

Segnala al moderatore
Postato alle 20:52
Domenica, 08/03/2009
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. #include <iostream>
  5. #include <conio.h>
  6. #include <string>
  7. using namespace std;
  8.  
  9. int main(){
  10.         FILE* usb;
  11.         string a;
  12.         cout<<"Inserire la lettera della periferica dove salvare il file di riconoscimento: ";
  13.         cin>>a;
  14.         a=a+"://ciao.dat";
  15.         usb=fopen(a,"a+");
  16.        
  17.         fclose(usb);           
  18.        
  19. }



ERRORE:
g++.exe  -x c++ -c C:\DOCUME~1\AMMINI~1\Desktop\PROGRA~1\prog -o C:\DOCUME~1\AMMINI~1\Desktop\PROGRA~1\prog.o  -Wall -fpermissive  -Wno-sign-compare -g
C:\DOCUME~1\AMMINI~1\Desktop\PROGRA~1\prog: In function `int main()':
C:\DOCUME~1\AMMINI~1\Desktop\PROGRA~1\prog:20: error: cannot convert `std::string' to `const char*' for argument `1' to `FILE* fopen(const char*, const char*)'
Failure

il programma č semplice, dando in input la lettera di una perioferica, deve costruirmi un file di dati nella periferica!! ora se io scrivo nella fopen "I://ciao.dat" funziona, ma se scrivo la variabile no!!aiuto!!!come posso farla andare??

Ultima modifica effettuata da Il_maca il 08/03/2009 alle 21:11
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 21:27
Domenica, 08/03/2009
Se mischi codice C++ e codice C, devi prevederlo ... scrivi

usb=fopen(a.c_str(),"a+");

oppure non usare la fopen ma le classi di I/O del C++ ...

PM Quote
Avatar
Il_maca (Normal User)
Rookie


Messaggi: 49
Iscritto: 19/12/2008

Segnala al moderatore
Postato alle 17:23
Lunedė, 09/03/2009
Testo quotato

Postato originariamente da theprogrammer:

Se mischi codice C++ e codice C, devi prevederlo ... scrivi

usb=fopen(a.c_str(),"a+");

oppure non usare la fopen ma le classi di I/O del C++ ...



okok, provo!! scusami, ma purtroppo il mio C-C++ č molto mischiato!! il mio prof ha fatto lezioni uniche non spioegandoci bene la differenza fra i due linguaggi!! e purtroppo ho imparato questo ibrido!!


ok provata e funziona!! grazie davvero tanto!!!

Ultima modifica effettuata da Il_maca il 09/03/2009 alle 17:26
PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 15:55
Martedė, 10/03/2009
č vero. I professori non spiegano le differenze tra quei due linguaggi....
anche la mia prof delle superiori ha spiegato le funzioni di IO del c pur usando classi e funzioni c++

sarebbe anche ora che nella scuola si facesse un po di chiarezza su queste cose, invece lasciano agli studenti il compito di farlo e quasi nessuno lo fa mai

PM Quote
Avatar
Il_maca (Normal User)
Rookie


Messaggi: 49
Iscritto: 19/12/2008

Segnala al moderatore
Postato alle 19:19
Martedė, 10/03/2009
Testo quotato

Postato originariamente da lorenzo:

č vero. I professori non spiegano le differenze tra quei due linguaggi....
anche la mia prof delle superiori ha spiegato le funzioni di IO del c pur usando classi e funzioni c++

sarebbe anche ora che nella scuola si facesse un po di chiarezza su queste cose, invece lasciano agli studenti il compito di farlo e quasi nessuno lo fa mai



purtroppo noi abbiamo le ore di informatica, dove studiamo il java; e poi le ore di sistemi dove studiamo tutti gli altri linguaggi! in un anno e mezzo abbiamo fatto tante cose ma male! purtroppo il mio itis prevede l'indirizzo abacus(informatico) solo dal terzo anno, e quindi č tutto molto....superfluo!!

PM Quote