Problème Borrowing et lifetime (encore un :-D)
Bonjour à tous je suis toujours débutant en Rust car je l'apprend sur mon temps libre, et j'ai un problème de lifetime dont je n'arrive pas à résoudre l'issue
Voici mon code de novice. je souhaite récupérer les lignes dans un fichier texte (3e partie de mon code) afin de les placer dans un vecteur et là ... c'est le drame :aie:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
use std::path::Path;
use std::fs::File;
use std::io::{prelude::*,BufReader,BufRead};
use std::io;
use std::fs;
fn main(){
//1 vérification de l'existence du fichier fichier_texte.txt
let b = Path::new("fichier_texte.txt").is_file();
let mut taille_fichier = 0;
let mut v_message = Vec::new();
//2 si le fichier existe on regarde sa taille
if b {
//utilisation des métadatas pour avoir la taille du fichier afin de savoir s'il contient des lignes
let metadata = fs::metadata("fichier_texte.txt").expect("nop, didn't found!");
taille_fichier = metadata.len();
}
//3 enfin si fichier n'existe pas, ou s'il est vide et on en crée un
if !b || taille_fichier == 0 { let mut new_message= File::create("fichier_texte.txt").expect("nop, not work");
println!("Alors, quel est ton mot ?");
let mut entree = String::new();
io::stdin().read_line(&mut entree).expect("I can't read the entry");
write!(new_message,"{}",entree).expect("sorry dude!");
}
//lecture des messages dans le fichier
let reader = BufReader::new(File::open("fichier_texte.txt").expect("I can't do this"));
for line in reader.lines() {
for message_ligne in line.unwrap().split_whitespace() { // <-- temporary value dropped while borrowed
v_message.push(message_ligne); // <-- temporary value dropped while borrowed
// test de variable
println!("word '{}'", message_ligne);
}
}
} |
Voila si quelqu'un peut m'aider à trouver et comprendre la solution je lui en serait très reconnaissant
Merci à vous :ccool: