CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

J´aide les personne en C/C++

kikou81
kikou81
Niveau 9
15 mars 2006 à 19:20:59

A ouais moi c´etais des int avec %d daccord maintenant ca marche merci (je suis trop BIIIp jy avais pas du tout penser) :honte:

countag
countag
Niveau 5
15 mars 2006 à 19:26:39

bonjour,

j´aurais voulu avoir un renseignement sur fstream.h,

je voulais savoir si il était possible d´ecrire sur plusieur lignes et de lire à un endroit special sur la ligne.

exemple :
ecire :
taille1 : 800
taille2 : 600
....

lire :
seulement le 800 et apres lire seulement le 600.

j´espere avoir été assez clair :/

merci de votre aide

Lapintade
Lapintade
Niveau 30
15 mars 2006 à 19:28:49

Desolé j´utilise pas les stream.
Tu peux faire ca facilement en C avec fscanf
int taillex;
int tailley;
fscanf(monfichier,"taille1 : %d", &taillex);
fscanf(monfichier,"taille2 : %d", &tailley);
...

faut ouvrir le fichier avant avec fopen.

JeanYvesYves
JeanYvesYves
Niveau 10
16 mars 2006 à 00:11:12

avec fstream, c´est idem.
dans une chaine style :
"taille1 : 800", tu as une forme :
1 chaine, 1 autre chaine (les : ), et le int

tu fais :

string bidon;
int n;
ifstream I("tonfichier.txt");
I>>bidon; // zappe le taille1
I>>bidon; // zappe le :
I>>n;
I.close();

--> ton n vaut 800.

countag
countag
Niveau 5
16 mars 2006 à 07:15:18

et pour sauter des ligines lors de la lecture on fait comment ? car endl apparament est reconnu comme un caractère :/ donc je suppose qu´il saute les lignes automatiquement non?

JeanYvesYves
JeanYvesYves
Niveau 10
16 mars 2006 à 08:50:33

oui, tout comme fscanf, les sauts de ligne ou espaces sont a peu pres la meme chose. (un séparateur)
ça recupere "la prochaine donnée"

_epsylon_
_epsylon_
Niveau 1
18 mars 2006 à 12:38:44

Salut, j´ai dejà posté ce truc sur un autre forum mais je pense qu´il a plus de chance de trouver sa réponse ici:

j´ai besoin de lire des données sous la forme d´un fichier texte.
Une ligne sur deux correspond à la donnée d´une classe, chacune des informations concernant cette classe est séparée par un ´:´. L´autre ligne (sur deux) est vide; il faut également ignorer les lignes commencant par # qui sont des commentaires.
Je voudrais cherher toutes les lignes contenant une certaine chaine de caractère, puis récuperer toutes les données de la ligne et les stocker une à une dans les champs de la classe pour chacune des lignes trouvées.

Merci!

countag
countag
Niveau 5
23 mars 2006 à 19:05:45

peut on decouper une chaine de caractere sans la declarer avec string ?

exemple, je recupere une ligne d un fichier texte :

"Salut ca va ?"

je peux decouper ma chaine pour n avoir que "ca" par exemple ?

godrik
godrik
Niveau 30
23 mars 2006 à 19:55:56

j´ai pas bien compris la sémantique de ce que tu cherche a faire. Mais c´est facil a écrire...
Il ne faut pas toujours s´attendre a ce qu´il y ait une fonction de la lib qui fasse le travail pour toi...
Il faut apprendre a les écrire aussi, ca aide beaucoup a comprendre ce qui se passe et comment faire les choses...

En outre, il y a une fonction qui fait ca... =>strtok

countag
countag
Niveau 5
23 mars 2006 à 20:12:51

je cherche pas une fonction qui fait ca, mais plutot comment on fait cela, comme je les dis je veux effectuer un découpage sans les fonctions de la classe string :) je vais essaier ca ;)

Neofungamer
Neofungamer
Niveau 22
23 mars 2006 à 20:37:37

alors voila

  1. include <iostream>
  2. include <stdlib.h>

using namespace std;

int main(int argc, char *argv[])
{

string s = "hello";

cout << s[2] << endl;

system("PAUSE");
return 0;
}

ce code sert a te montrer quelque chose de particulier concernant le type string

grace a ca tu peux donc creer ta fonction souChaine() sans problemes

je vais encore t´aider en te proposant une signature possible pour ce type de fonction

string sousChaine(string maChaine, int premiercaractere , int nombredecaractere);

dnob700
dnob700
Niveau 10
23 mars 2006 à 23:52:28

mais justement il voulait le faire sans utiliser les string.

Par contre, tu peut en avoir une version en C facilement sur le même principe :

char* mid(char* chaine, int debut,int longueur)
{
chaine[debut+longueur]=0;
return chaine+debut;
}
bon, mais là tu as bousillé ta chaine initial. Mais tu peut facilement imaginer une version qui va recopier dans une nouvelle chaien, la partie de la chaine que tu veux pour ne pas toucher à l´originale.

countag
countag
Niveau 5
24 mars 2006 à 22:58:19

je vais sans doute paraitre c** mais j ai un probleme avec getline et un char.

je déclare mon char :
char *NomMesh;

puis un peu apres dans une boucle pour lire chaque ligne j ai ca :
F.getline(NomMesh,5000);

en debug il lance et tous marche mais en normal la fenetre se referme direct, j ai donc essaier d initialiser la variable a NULL :
char *NomMesh=NULL;

et la c est le drame en debug quand j arrive a la ligne pour stocker le NomMesh et bien j ai une erreur de segmentation.
j ai essaier : F.getline(&NomMesh[0],5000);
mais c est pareil :/

une idee ?

final-hearts
final-hearts
Niveau 10
24 mars 2006 à 23:03:12

quelqu´un pourrait me dire ce qui vas pas dans ce prog :

  1. include <stdlib.h>
  2. include <iostream>

using namespace std;

int main()
{
int QI;
cout << "votre QI?" << endl;
cin >> QI;
cout << "vous avez " << QI << " de QI" << endl;
if (QI<50)
{
cout << "vous etes intelligent" << endl;
}
else
{
if (QI==0)
{
cout << "vous êtes aussi débile que naruto" << endl;

if (QI>200)
{ cout << "vous êtes idiot" << endl;
}
system("PAUSE");
}
return 0; }

countag
countag
Niveau 5
24 mars 2006 à 23:11:00

franchement structure bien ton code t avais oublie un } sur un if et ta mis le system dans le else :

  1. include <stdlib.h>
  2. include <iostream>

using namespace std;

int main()
{
int QI;
cout << "votre QI?" << endl;
cin >> QI;
cout << "vous avez " << QI << " de QI" << endl;
if (QI<50)
{
cout << "vous etes intelligent" << endl;
}
else
{
if (QI==0)
{
cout << "vous êtes aussi débile que naruto" << endl;
}
if (QI>200)
{
cout << "vous êtes idiot" << endl;
}
}
system("PAUSE");
return 0;
}

comme ca c est mieux mais ca marchera pas je te conseil de faire un switch car si je met 0 j aurais : "vous etes intelligent" vu que le premier if demande si c est < a 50 et 0 est < a 0

si tu veux remplace :
if (QI<50)
par
if (QI<50 & QI>0)

mais je te conseil vivement un switch

countag
countag
Niveau 5
25 mars 2006 à 10:15:04

bon j ai resolu mon dernier probleme mais j ai une nouvelle question :p (il s arrete jamais lui lolxD)

bon je fais une boucle pour lire chaque ligne que je stock dans un buffer :

F.getline(&buf[0],5000);

je voudrai verifier si a la ligne le buf est egal a " Mesh {" par exemple j ai essaier un IF mais aparament il ignore, vous pouvez m aider ?

Lapintade
Lapintade
Niveau 30
25 mars 2006 à 10:52:48

buf doit etre un
char buf[5000] je suppose.
Dans ce cas je ne crois pas que tu puisse de == directement (mais je peux me tromper), par contre tu peut faire une comparaison de string

if ( strcmp(buf, " Mesh {")==0 ) ...

Lapintade
Lapintade
Niveau 30
25 mars 2006 à 10:53:12

(en mettant #include "string.h" au debut de ton prog si tu l´a pas deja)

godrik
godrik
Niveau 30
25 mars 2006 à 11:13:35

un switch ? c´est une tres mauvaise idée.
tu serais obligé de mettre:
case 0:
cout<<"naruto way of life"<<endl; break;
case 1:
case 2:
case 3:
...
case 50:
cout <<"debile inside"<<endl; break;
case 51:
...

countag
countag
Niveau 5
25 mars 2006 à 11:16:40

merci Lapintade :) ca marche maintenant me reste plus qu a faire des conversion char int apres un getline XD ca va etre marrant lol

aussinon godrik je viens d y penser ta raison c est une mauvaise idee XD il etait tard surment lol

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware