la libraire "iostream.h" n'existe pas ?

boualiasma Messages postés 393 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 23 décembre 2011 - 18 juil. 2009 à 10:42
gnairod Messages postés 37 Date d'inscription samedi 22 novembre 2008 Statut Membre Dernière intervention 11 avril 2010 - 18 juil. 2009 à 13:20
Salut,

J'ai remarqué que la libraire "iostream.h" n'existe pas dans les fichiers include de Visual studio 2008 sous windows.

Voici mon code C++ de test :
#include 
#include<stdio.h>

int main()
{ 
FILE * fp_con;
    cout << "Hello world!";
fp_con = fopen("essai.txt","r+");
if(!fp_con)
{
    cout<<"erreur lors de l'ouverture du fichier";
    getch();
    exit(0);
}
    
    return 0;
}


Après la compilation, j'ai ce message:

1>------ Début de la génération : Projet : stoph, Configuration : Debug Win32 ------
1>Compilation en cours...
1>main.c
1>c:\stoph\stoph\main.c(1) : fatal error C1083: Impossible d'ouvrir le fichier include : 'iostream.h' : No such file or directory
1>Le journal de génération a été enregistré à l'emplacement "file://c:\stoph\stoph\Debug\BuildLog.htm"
1>stoph - 1 erreur(s), 0 avertissement(s)
======== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========

Je ne sais pas quelle librairie qui va remplacer la libraire standard "iostream.h" ?

Merci.

4 réponses

cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
18 juil. 2009 à 10:52
C'est du C++, les headers du CRT n'ont pas d'extension
#include 


---
VB.NET is good ... VB6 is better
0
boualiasma Messages postés 393 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 23 décembre 2011 5
18 juil. 2009 à 12:07
Salut,

J'ai testé le code suivant:

#include <tchar.h>
#include 

#define MAXLINE 1024

int _tmain(int argc, _TCHAR* argv[])
{
        char sLine[MAXLINE];
        char sNum[10], sAttrib[32];
        FILE *pFile, *pFileOut;
        pFile = fopen("test.txt","r");
        pFileOut = fopen("test2.txt","w");
        if (pFile && pFileOut)
        {
                while (fgets(sLine, MAXLINE, pFile))
                {
                        strncpy(sNum, sLine, 5);
                        sNum[5] = '\0';
                        strncpy(sAttrib, &sLine[5], 6);
                        sAttrib[6] = '\0';
                        if (strcmp(sAttrib, "000000") != 0)
                                fprintf(pFileOut, "%s%s\n", sNum,
sAttrib);
                }
                fclose(pFile);
                fclose(pFileOut);
        }
        return 0;

}

Après la compilation, j'ai le message suivant portant les 4 warrings :

1>------ Début de la génération : Projet : amani, Configuration :
Debug Win32 ------
1>Compilation en cours...
1>main.cpp
1>c:\amani\amani\main.cpp(11) : warning C4996: 'fopen': This function
or variable may be unsafe. Consider using fopen_s instead. To disable
deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include
\stdio.h(237) : voir la déclaration de 'fopen'
1>c:\amani\amani\main.cpp(12) : warning C4996: 'fopen': This function
or variable may be unsafe. Consider using fopen_s instead. To disable
deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include
\stdio.h(237) : voir la déclaration de 'fopen'
1>c:\amani\amani\main.cpp(17) : warning C4996: 'strncpy': This
function or variable may be unsafe. Consider using strncpy_s instead.
To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help
for details.
1> c:\program files\microsoft visual studio 9.0\vc\include
\string.h(157) : voir la déclaration de 'strncpy'
1>c:\amani\amani\main.cpp(19) : warning C4996: 'strncpy': This
function or variable may be unsafe. Consider using strncpy_s instead.
To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help
for details.
1> c:\program files\microsoft visual studio 9.0\vc\include
\string.h(157) : voir la déclaration de 'strncpy'
1>Édition des liens en cours...
1>Incorporation du manifeste en cours...
1>Le journal de génération a été enregistré à l'emplacement "file://c:
\amani\amani\Debug\BuildLog.htm"
1>amani - 0 erreur(s), 4 avertissement(s)
======== Génération : 1 a réussi, 0 a échoué, 0 mis à jour, 0 a été
ignoré ==========

- Comment résoudre ces warings ?

- J'ai remarqué que la libraire "iostream.h" n'existe pas dans les fichiers include de Visual studio 2008 sous windows.
Je ne sais pas quelle librairie qui va remplacer la libraire standard "iostream.h" ?

- Quelle est la différence entre main et _tmain ?

- Quelle est la différence entre strncpy() et strcpy() ?

- Quelle est la différence entre char et -TCHAR ?

-Quelle est le rôle du _TCHAR et tchar.h ?

Merci.
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
18 juil. 2009 à 13:19
L'ancien =
Pour supprimer les warnings, dans ton stdafx.h, avant les includes, mets ça :
#define _CRT_SECURE_NO_WARNINGS

La différence entre main() et _tmain est que main() est en ANSI, et _tmain en Unicode. Entre strncpy() et strcpy(), avec strncpy on spécifie la longueur max. du buffer.
Entre char et TCHAR, TCHAR est Unicode, et char ANSI (un byte en fait)
Le rôle de _TCHAR et tchar.h est de fournir un support pour l'Unicode.

---
VB.NET is good ... VB6 is better
0
gnairod Messages postés 37 Date d'inscription samedi 22 novembre 2008 Statut Membre Dernière intervention 11 avril 2010
18 juil. 2009 à 13:20
Comment résoudre ces warings ?
Lit ce que tu dis le compilateur... defini _CRT_SECURE_NO_WARNINGS sinon utilise les fonctions securise de la CRT.

J'ai remarqué que la libraire "iostream.h" n'existe pas dans les fichiers include de Visual studio 2008 sous windows.
Je ne sais pas quelle librairie qui va remplacer la libraire standard "iostream.h" ?

iostream.h c'est du temps VS6 et precedent.
iostream c'est la meme chose mais avec un nom standard. (c'est a dire sans extension)

Quelle est la différence entre main et _tmain ?

main point d'entree si tu compiles sans UNICODE sinon wmain. _tmain ce charge de ca pour toi. (main si non UNICODE, sinon wmain).

Quelle est la différence entre strncpy() et strcpy() ?

Lit la doc...

Quelle est la différence entre char et -TCHAR ?

char est un entier sur 1 octet. wchar_t sur 2 octets. _TCHAR defini sur un octet si tu ne compiles pas en UNICODE sinon sur 2.

Quelle est le rôle du _TCHAR et tchar.h ?

Voir precedemment et tchar.h fourni un exemple de sous programme pour manipuler des chaines de maniere generique. (UNICODE ou non)

ciao
0
Rejoignez-nous