Bonjour à tous !

Excusez-moi de vous déranger, j'avais simplement 3 petites questions toutes simples à vous poser :

1) Mon but est de lire 3 colonnes de chiffres sur un fichier .txt et de les réécrire sur un autre fichier .txt (ça n'a aucun intérêt mais c'est juste pour comprendre).
Voilà mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
# include <iostream>
# include <fstream>
# include <stdlib.h>
# include <string>
 
using namespace std;
 
 
int main()
{
 
    int const nombreLignes(5);
    int tab1[nombreLignes];
    int tab2[nombreLignes];
    int tab3[nombreLignes];
 
 
    ifstream fichier1("donnees.txt", ios::in); // lecture du fichier : je stocke les chiffres sous la forme de tableaux
 
    for (int i=0 ; i<nombreLignes ;++i)
    { fichier1 >> tab1[i] >> tab2[i] >> tab3[i];
   fichier1.close(); }
 
 
 
    ofstream fichier2 ("donnees1.txt" , ios :: out) ; // constitution du fichier : je réécris les chiffres stockés
 
        for (int i=0 ; i<nombreLignes ;++i)
        { fichier2 << tab1[i] << tab2[i] << tab3[i] << "\n" << endl ;
fichier2.close(); }
 
 
 
return 0;
}
En fait tout marche bien sauf que je n'ai que la première ligne qui s'affiche : je ne lis que les 3 premiers nombres.



2) En plus j'aimerais bien lire un fichier csv suivant le même principe et recopier les nombres sur un txt. Sur le csv, les nombres sont séparés par des ";".
Mon code est donc le suivant :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
# include <iostream>
# include <fstream>
# include <stdlib.h>
# include <string>
 
using namespace std;
 
 
int main()
{
 
    int const nombreLignes(5);
    int tab1[nombreLignes];
    int tab2[nombreLignes];
    int tab3[nombreLignes];
 
 
    ifstream fichier1("donnees.txt", ios::in); // lecture du fichier : je stocke les chiffres sous la forme de tableaux
 
    for (int i=0 ; i<nombreLignes ;++i)
    { fichier1 >> tab1[i] >> ";" >> tab2[i] >> ";" >> tab3[i];
   fichier1.close(); }
 
 
 
    ofstream fichier2 ("donnees1.txt" , ios :: out) ; // constitution du fichier : je réécris les chiffres stockés
 
        for (int i=0 ; i<nombreLignes ;++i)
        { fichier2 << tab1[i] << tab2[i] << tab3[i] << "\n" << endl ;
fichier2.close(); }
 
 
 
return 0;
}

Mais ça ne marche pas...



3) Enfin, toujours dans le même genre, je voudrais ne lire que la première colonne et la quatrième.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
# include <iostream>
# include <fstream>
# include <stdlib.h>
# include <string>
 
using namespace std;
 
 
int main()
{
 
    int const nombreLignes(5);
    int tab1[nombreLignes];
    int tab2[nombreLignes];
 
    int entier
 
 
    ifstream fichier1("donnees.txt", ios::in); // lecture du fichier : je stocke les chiffres sous la forme de tableaux
 
     for (int i=0 ; i<nombreLignes ;++i)
     { fichier1 >> tab1[i] >> entier >> entier >> tab2[i];
     fichier1.close(); }
 
 
 
    ofstream fichier2 ("donnees1.txt" , ios :: out) ; // constitution du fichier : je réécris les chiffres stockés
 
     for (int i=0 ; i<nombreLignes ;++i)
     { fichier2 << tab1[i] << " " << tab2[i] << "\n" << endl ;
     fichier2.close(); }
 
 
 
return 0;
}
et ça marche pas non plus.


Savez-vous comment faire ?
Merci beaucoup en tout cas.