Scrittura in un file

di il
5 risposte

Scrittura in un file

Cosa ho sbagliato?
Grazie
/*Scrittura di un file da tastiera*/
#include <iostream>
#include <fstream>
#include <string.h>
#include <iomanip>
using namespace std;
#define MAX_NOME_FILE 20

int main() 
{ 
    char nome_file[MAX_NOME_FILE];
    char rigo[30];
    char rigo_finale[]="The End";
	int contatore=0;
	
	fstream  miofile;
	cout<<"\nInserire il nome dle file : ";
	cin.getline(miofile, MAX_NOME_FILE-1,'\n');
	miofile.open(nome_file,ios::out);
	
	if(!miofile)
	{
		cout<<"Impossibile aprire il file!";
		exit (1);
		
	}
	else
	contatore=0;
	
	do
	{
		cout<<"\n rigo["<<MAX_RIGO<< ++contatore<<"] =";
		cin.getline(rigo,30,'\n');
		miofile<<rigo<<endl;
		
	}
	while (strcmp(rigo,rigo_finale) !=0);
	cout<<"Scritti nel file"<<contatore<<"righi";
	
	return 0;
}

5 Risposte

  • Re: Scrittura in un file

    Ci sono due errori

    - cin.getline non accetta uno fstream, devi usare un array di char
    - MAX_RIGO non è dichiarata
  • Re: Scrittura in un file

    Saffina ha scritto:


    Cosa ho sbagliato?
    Scusa, ma il tuo compilatore non ti dice nulla?
  • Re: Scrittura in un file

    oregon ha scritto:


    Scusa, ma il tuo compilatore non ti dice nulla?
    Mettiti nei panni di un povero studente che riceve il seguente errore:
    
    IntelliSense: no instance of overloaded function "std::basic_istream<_Elem, _Traits>::getline [with _Elem=char, _Traits=std::char_traits<char>]" matches the argument list ...\progetto_c.cpp	18	7	Progetto_C
    
    é comprensibile che chieda aiuto.
  • Re: Scrittura in un file

    Intendevo dire che, oltre a postare il codice chiedendo cosa non va, poteva postare *anche* i messaggi d'errore (sicuramente ricevuti) indicando che non li comprendeva.

    E poi scusa ma un messaggio del tipo

    Error 2 error C2065: 'MAX_RIGO' : undeclared identifier

    non mi sembra così incomprensibile.

    E lasciando stare l'Intellisense, nel messaggio

    Error 1 error C2664: 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::getline(_Elem *,std::streamsize,_Elem)' : cannot convert parameter 1 from 'std::fstream' to 'char *'

    identificare la parte importante

    cannot convert parameter 1 from 'std::fstream' to 'char *'

    è relativamente semplice.

    Forse è necessario un pizzico di intraprendenza in più e il suggerimento di leggere e cercare di comprendere i messaggi del compilatore può tornarle utile.
  • Re: Scrittura in un file

    oregon ha scritto:


    Forse è necessario un pizzico di intraprendenza in più e il suggerimento di leggere e cercare di comprendere i messaggi del compilatore può tornarle utile.
    Si certo. A volte basta un piccolo sforzo in più per risolversi il problema da soli.
    Però ricordo bene le prime volte che vedevo i messaggi di errore dell' stl e di come andavo nel panico!
    Per cui provo una certa empatia per Saffina, che invito a rifarsi sentire .
Devi accedere o registrarti per scrivere nel forum
5 risposte