Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Siamo tornati nel parco tecnologico di Trieste per il kick-off del programma che mette a disposizione di cinque startup le infrastrutture di ricerca, dal sincrotrone Elettra ai laboratori di genomica e HPC. Roberto Pillon racconta il modello e la visione
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16-ak0001nl combina RTX 5080 Laptop e Ryzen AI 9 HX 375 in un desktop replacement potente e ben raffreddato, con display 240 Hz e dotazione completa. Autonomia limitata e calibrazione non perfetta frenano l'entusiasmo, ma a 2.609 euro è tra le proposte più interessanti della categoria.
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta
Google ha appena rinnovato la sua celebre serie A con il Pixel 10a, lo smartphone della serie più conveniente se consideriamo il rapporto tra costo e prestazioni. Con il chip Tensor G4, un design raffinato soprattutto sul retro e l'integrazione profonda di Gemini, il colosso di Mountain View promette un'esperienza premium a un prezzo accessibile. E il retro non ha nessuno scalino
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-01-2009, 11:32   #1
Cory
Member
 
L'Avatar di Cory
 
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();
}
Il programma mi crea correttamente il file output.txt ma non ci scrive nulla.
Grazie in anticipo a chi mi aiuterà
Cory è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2009, 15:36   #2
Mesh89
Member
 
Iscritto dal: Dec 2006
Messaggi: 198
A me funziona. Hai messo un file input.txt corretto? (stesso path dell'eseguibile, delle a...)
Mesh89 è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2009, 16:29   #3
Cory
Member
 
L'Avatar di Cory
 
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
e il compilatore mi restituisce questo errore
Codice:
g++: a: Nessun file o directory
ho modificato il codice come segue

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;
}
Da quel che ho capito argv[3] identifica il terzo elemento del comando che do al compilatore al momento della compilazione, cioè 'a'. Ma mi da l'errore di cui sopra...
Cory è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2009, 16:47   #4
Mesh89
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).
Mesh89 è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2009, 16:48   #5
Cory
Member
 
L'Avatar di Cory
 
Iscritto dal: Jan 2009
Città: Trento
Messaggi: 81
ehm come non detto..
sbagliavo a compilare

dovevo prima fare g++ file.cc
Cory è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2009, 19:21   #6
danieljsoffio
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 !!!
danieljsoffio è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026 6G, da rete che trasporta dati a rete intelligen...
CHUWI CoreBook Air alla prova: design premium, buona autonomia e qualche compromesso CHUWI CoreBook Air alla prova: design premium, b...
Monitor da ufficio e gaming a prezzi ass...
Silent Hill 2 Remake è un trionfo...
Logitech svende le periferiche: mouse ga...
Uno studio accusa i principali chatbot A...
Loot box e gioco d'azzardo: Valve ai fer...
Pulire casa al posto tuo? Il robot umano...
iPhone 17 da 256GB al minimo storico: or...
Quasi 6.000 giochi su Steam hanno supera...
Scope lavapavimenti super scontate: Drea...
WhatsApp prepara account dedicati ai min...
Nemotron 3 Super: modello AI open da 120...
Addio caricamenti lenti? Microsoft aggio...
Valve definisce i requisiti di certifica...
Microsoft accelera l'integrazione tra Xb...
Smartphone potenti sotto i 300€: ecco i ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:27.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v