Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/05/2024, à 16:26

temps

[résolu] error: assigning to an array from an initializer list

bonjour, j'ai essayé d'améliorer un code qui marche afin de ne pas à avoir à réécrire le nom qui se répète en entier.

#include <cstdlib>
#include <fstream>
#include <iostream>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <cstring>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

 /**pour compiler g++ 'composeur.cpp'   -std=c++11 -Wall -Wextra -o 'composeur' ********************/
int main(void) {

char appli[5];
char joapp[20]{"./joapp"};
int j,a;
std::cout << "Indiquez le nombre de formes à associer : "; std::cin >> j;
for (int i = 0; i < j; i++) { 
std::cout << "Entrez la reférence, exemple 1 pour joapp1 de la forme à associer : "; std::cin>>appli;
strcat(joapp,appli);
std::system (joapp );
//std::system ( appli);
joapp={"./joapp"};
std::cout << "Attendre 5s, puis tapez sur 1 pour que l'application transforme le fichier texte :";std::cin>> a;
if (i == 0){std::system ("./executable");}//{execl("executable", "executable", NULL);}
if (i > 0){std::system ("./executable1");}//{execl("executable1", "executable1", NULL);}
std::cout << "Attendre 5s, puis tapez sur 1 pour poursuivre :";std::cin>> a;
std::system ("./poids");
std::cout << "Création de l'entete,attendre 2s puis tapez sur 1 pour poursuivre :";std::cin>> a;
}

}

c'est quand j'ai ajouté les lignes

char joapp[20]{"./joapp"};


strcat(joapp,appli);
joapp={"./joapp"};

que le défaut est apparu, car sans la troisième ligne la ref des appli avant reste et avec la troisième ligne j'ai le défaut indiqué.
Est-ce que quelqu'un à une idée ?
Cordialement

Dernière modification par temps (Le 12/05/2024, à 16:55)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne

#2 Le 12/05/2024, à 16:55

temps

Re : [résolu] error: assigning to an array from an initializer list

Je poste en résolu, j'ai trouvé la solution en encapsulant dans une boucle du for. En sortant de la boucle cela efface la variable et me laisse libre de la reconstruire selon le besoin
voici le code

#include <cstdlib>
#include <fstream>
#include <iostream>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <cstring>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

 /**pour compiler g++ 'composeur.cpp'   -std=c++11 -Wall -Wextra -o 'composeur' ********************/
int main(void) 
{
char appli[20];
int j,a;
std::cout << "Indiquez le nombre de formes à associer : "; std::cin >> j;
for (int i = 0; i < j; i++)
    { 
    std::cout << "Entrez la reférence, exemple :1 pour joapp1 de la forme à associer : "; std::cin>>appli;
    for (int k = 0; k < 1 ; k++)
        {
        char joapp[20]{"./joapp"};
        strcat(joapp,appli);
        std::system (joapp );
        std::cout << "Attendre 5s, puis tapez sur 1 pour que l'application transforme le fichier texte :";std::cin>> a;
        }
    if (i == 0){std::system ("./executable");}
    else {std::system ("./executable1");}
    std::cout << "Attendre 5s, puis tapez sur 1 pour poursuivre :";std::cin>> a;
    std::system ("./poids");
    std::cout << "Création de l'entete,attendre 2s puis tapez sur 1 pour poursuivre :";std::cin>> a;
    }
}

Dernière modification par temps (Le 13/05/2024, à 08:18)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne