Cory
31-01-2010, 11:20
Ciao a tutti, ho realizzato un piccolo e semplice programma in C++ che prende in ingresso un file .txt e restituisce in un file di output il numero di vocali presenti nel txt di ingresso.
il problema che ho è che quando apro il file di output per vedere se ha funzionato, il contenuto è illeggibile! Mentre se provo a modificare il programma facendogli scrivere sul file di output le vocali che mano a mano vengono incontrate questo funziona!
Vi copio il codice, spero possiate aiutarmi perchè non ho capito se è un problema a livello di programmazione o di codifica (a proposito, programmo su Ubuntu usando gedit) .
using namespace std;
#include<iostream>
#include<fstream>
bool isVowel(char);
int main(int argc, char* argv[]){
fstream my_in, my_out;
int count=0;
char c;
my_in.open(argv[1],ios::in);
my_out.open(argv[2],ios::out);
while(my_in.get(c)){
if(isVowel(c)){ count++;}
}
my_out.put(count);
my_in.close();
my_out.close();
}
bool isVowel(char ch){
if((ch=='a')||(ch=='e')||(ch=='i')||(ch=='o')||(ch=='u')) return true;
else return false;
}
il problema che ho è che quando apro il file di output per vedere se ha funzionato, il contenuto è illeggibile! Mentre se provo a modificare il programma facendogli scrivere sul file di output le vocali che mano a mano vengono incontrate questo funziona!
Vi copio il codice, spero possiate aiutarmi perchè non ho capito se è un problema a livello di programmazione o di codifica (a proposito, programmo su Ubuntu usando gedit) .
using namespace std;
#include<iostream>
#include<fstream>
bool isVowel(char);
int main(int argc, char* argv[]){
fstream my_in, my_out;
int count=0;
char c;
my_in.open(argv[1],ios::in);
my_out.open(argv[2],ios::out);
while(my_in.get(c)){
if(isVowel(c)){ count++;}
}
my_out.put(count);
my_in.close();
my_out.close();
}
bool isVowel(char ch){
if((ch=='a')||(ch=='e')||(ch=='i')||(ch=='o')||(ch=='u')) return true;
else return false;
}