View Full Version : [C++] Estrarre righe da file txt
Ciao a tutti.
Qualcuno di voi conosce una funzione che mi permette di leggere una determinata riga in un file txt? ho sentito parlare di "getline" ma credo che serva solamente per il numero di caratteri o qualcosa del genere, poi anche di fscanf che però non so nemmeno a cosa serva....
Qualcuno di voi può aiutarmi?:D
grazie in anticipo
ps. naturalmente le righe dopo dovrei memorizzarle come stringhe. Per riga intendo 1 frase dopo la quale va a capo.
Ciao a tutti.
Qualcuno di voi conosce una funzione che mi permette di leggere una determinata riga in un file txt? ho sentito parlare di "getline" ma credo che serva solamente per il numero di caratteri o qualcosa del genere, vedi bene da solo che non è così:
http://www.cplusplus.com/reference/string/getline.html
poi anche di fscanf che però non so nemmeno a cosa serva... fscanf in C++ non ha praticamente senso.
ah si è vero però con getline ti prende la prima stringa, poi ogni volta che lo rieseguo prende quella successiva... non c' è una funzione che mi permette di dirgli quale riga prendere? esempio memorizza la riga 24 come stringa...
grazie tante in anticipo
No, non c'è. E forse non c'è in alcun linguaggio.
DanieleC88
29-10-2008, 11:38
non c' è una funzione che mi permette di dirgli quale riga prendere? esempio memorizza la riga 24 come stringa...
No, ma puoi farlo a mano "facilmente". :)
Usa la getline() del C++, se poi hai proprio bisogno di usare le funzioni di I/O della libreria standard del C, usa fgets().
ciao ;)
ok risolto anke questo....
ora c' è un nuovo problema e spero che questo sia l' ultimo...
Il programma non riesce a leggere dal file di testo la frase 3 e la fras5 infatti stampandole non me le da e ho provato anche a scriverle su un file per vedere se era un problema della stampa, ma mi scrive "0s" quindi vuol dire che non la memorizza... come mai?
questo è il codice:
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <fstream.h>
#include <string.h>
#include <cmath>
using namespace std;
int main()
{
// Assegnazioni
int r1, r2, r3, r5, cont;
char frase1[300], frase2[300], frase3[500], frase5[500];
// Fine
// Inserire quante volte ripetere il ciclo
// Inizio ciclo for
// Inizio ciclo do-while per controllo frasi
//Generazione numeri casuali
srand((unsigned int)time(NULL));
r1 =(rand() % 50 + 1);
r2 =(rand() % 50 + 51);
r3 =(rand() % 50 + 101);
r5 =(rand() % 50 + 151);
printf ("\n\t\tQuesti sono i numeri che ho generato : %i %i %i %i", r1, r2, r3, r5);
printf ("\n********************************************************************************");
//Fine
// Scelta delle righe corrispondenti ai numeri casuali
fstream testo("C:\\percorso\\testo.txt",ios::in);
for (cont=1; cont<=r1; cont ++)
testo.getline(frase1,300);
for (cont=1; cont<=r2; cont ++)
testo.getline(frase2,300);
for (cont=1; cont<=r3; cont ++)
testo.getline(frase3,500);
for (cont=1; cont<=r5; cont ++)
testo.getline(frase5,500);
testo.close();
printf ("1. %s\n", frase1);
printf ("2. %s\n", frase2);
printf ("3. %s\n", frase3);
printf ("5. %s\n", frase5);
getch ();
}
come mai? grazie in anticipo per il vostro aiuto...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.