|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
[c++] while concatenati
scrivendo un programma che doveva generare tutte le possibili conbinazioni di nomi e aggettivi prendendoli da due file e scriverle su un altro file ho riscontrato un errore.
questi sono i due file: (nomi.txt) Fiore Casa ---- (aggettivi.txt) Rosso Giallo Questo è il programma (programma.cpp) string nome,aggettivo; ofstream com("combinazioni.txt"); ifstream agg("aggettivi.txt"); ifstream nom("nomi.txt"); while(getline(aggettivi,aggettivo)) { while(getline(nomi,nome)) { com << nome << " " << aggettivo << endl; } } Il problema è che sul file combinazioni.txt vengono fatte solo le combinazioni con il primo aggettivo Credo che il problema risieda nel fatto che il getline del secondo while vale true alla prima esec del primo while, ma false dopo, a causa del raggiungimento dell'EOF esiste un modo per evitare che questo accada?
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Per vedere se il problema è quello inserisci un invio in fondo ai file di testo...
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
Quote:
non capisco in cosa possa aiutare questo invio ![]() edit: ho pensato di risolvere concatenando due for, ma poi dovrei conoscere la lunghezza esatta in righe del file, che non so come ricavare |
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Apr 2004
Messaggi: 130
|
Codice:
#include <fstream>
#include <string>
int main(void)
{
std::string nome, aggettivo;
std::ofstream com("c.txt");
std::ifstream agg("a.txt"), nom("n.txt");
while (getline(agg, aggettivo)) {
while (getline(nom, nome)) {
com << nome << " "
<< aggettivo << std::endl;
}
nom.clear();
nom.seekg(0);
}
}
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
grazie qu@ker
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
visto che la mia idea era di fare questo programma in perl, ma poi ci ho rinunciato per il problema del secondo while, lho scritto in c++ perche conosco questo linguaggio meglio del perl, ma ho avuto lo stesso problema. ora vorrei riscriverlo in perl e vorrei sapere se esistono degli equivalenti di clear e seekg in perl.
grazie ancora ^^ |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:52.




















