|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2002
Città: Liguria
Messaggi: 638
|
[c++] ifstream all'interno di un ciclo for
Ciao a Tutti!
Ho bisogno del vostro aiuto. Ho un programma che deve leggere tanti file denominati 1, 2, 3, 4 posti all'interno della stessa diretory dove viene eseguito il programma e deve salvare il contenuto di essi in un unico file, con l'eccezione che se i file non ci sono o contengono solo la scritta "404 NOT FOUND" non deve salvare nulla. Ho scritto il programma in C++ e l'ho compilato sotto Linux con c++ e va alla perfezione. Però lo stesso codice sotto Windows Xp non funziona: viene aperto solo il primo file della serie e poi non riesce a trovare quelli successivi. Qualche idea??? Sto impazzendoci dietro... Ciao, Andrea Allego sorgente: Codice:
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <string>
#include <sstream>
#include <cstdio>
std::string int_to_string(int numero)
{
std::string a;
std::stringstream out;
out << numero;
a = out.str();
return(a);
}
int main()
{
int max=50;
int i;
int controllo=0;
std::string modello;
std::string file;
std::ofstream OutFile ("totale.txt", std::ios::out);
std::ifstream inFileLong;
for (i=13; i<max; i++)
{
file=int_to_string(i);
inFileLong.open(file.c_str(), std::ios::in);
if (!inFileLong) {
std::cout << "Errore: file non trovato!!" <<std::endl;
}
else
{
while (!inFileLong.eof())
{
getline(inFileLong, modello);
if ( ! modello.empty() )
{
if (modello.compare("404 NOT FOUND")==0)
{
}
else
{
if (controllo==0)
{
OutFile << modello;
controllo=1;
}
else
{
OutFile <<"\n"<< modello;
}
}
}
}
}
inFileLong.close();
std::cout << file << std::endl;
}
OutFile.close();
return 0;
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Intanto elimina stdio.h e stdlib.h. Sostituiscili con cstdio e cstdlib.
Quale compilatore usi su Windows ? |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:47.



















