|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jan 2009
Città: Trento
Messaggi: 81
|
[C++] problema argc argv
Innanzitutto mi presento, visto che sono nuovo di qui
Mi chiamo Michele e frequento il primo anno della facoltà di Informatica, mi sono iscritto sul forum nella speranza di trovare aiuto in quella materia così affascinante ma anche ostica che è la programmazione. Veniamo subito al dunque: non mi è per nulla chiaro come debbano essere utilizzati i parametri int argc e char* argv[] nella funzione main per poter programmare su più file. Esempio pratico: voglio fare un programma che mi legge in input un file .txt e mi scriva in output su un altro .txt mettiamo caso solo le lettere "a". Includo quindi la libreria <fstream> e dichiaro il nome degli stream di input e output. Tuttavia non ho capito come utilizzare argc e argv all'interno del codice. Nello specifico: Codice:
using namespace std;
#include<iostream>
#include<fstream>
#include<cctype>
int main(int argc,char* argv[]){
fstream input, output;
char ch;
input.open("input.txt", ios::in);
output.open("output.txt", ios::out);
while((input.get(ch)) && isalpha(ch)) {
if(ch=='a')
output.put(ch);
}
input.close();
output.close();
}
Grazie in anticipo a chi mi aiuterà |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Dec 2006
Messaggi: 198
|
A me funziona. Hai messo un file input.txt corretto? (stesso path dell'eseguibile, delle a...)
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jan 2009
Città: Trento
Messaggi: 81
|
ovviamente sì, con del testo incollato da un sito a caso.
Specifico meglio: il codice del mio primo post è stato scritto su Windows con CodeBlocks. In realtà io ho bisogno di programmare sotto Ubuntu perchè l'esame si svolge sotto questo OS. Al momento della compilazione digito Codice:
./a.out input.txt output.txt a Codice:
g++: a: Nessun file o directory Codice:
using namespace std;
#include<iostream>
#include<fstream>
#include<cctype>
int main(int argc, char* argv[]){
fstream input,output;
char ch, temp;
input.open("input.txt",ios::in);
output.open("output.txt",ios::out);
temp=*argv[3];
while(input.get(ch)){
if(isalpha(ch)&& ch==temp)
output.put(ch);
}
input.close();
output.close();
return 0;
}
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Dec 2006
Messaggi: 198
|
Aspetta aspetta... Che significa
Al momento della compilazione digito ./a.out input.txt output.txt a ? La compilazione si fa così: g++ programma.cpp mentre il programma si avvia così ./a.out input.txt output.txt a E come prima, mi funziona tutto (sono sotto Ubuntu). |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jan 2009
Città: Trento
Messaggi: 81
|
ehm come non detto..
sbagliavo a compilare dovevo prima fare g++ file.cc
|
|
|
|
|
|
#6 |
|
Junior Member
Iscritto dal: Feb 2009
Messaggi: 1
|
ciao, anche io sono nuovo di qst forum, quindi mi presento, mi chiamo daniele. Anche io sono alle prese con programmazione, e ho lo stesso problema, ho anche provato a copiare il codice, ma, anke se mi compila e mi crea il file, nel file "output.txt" non mi scrive niente !!!
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:27.



















