2009-10-31 2 views
0
#include<stdio.h> 
#include<string.h> 
#include<stdlib.h> 
int main() 
{ 
    // int 
    char str[40],ch; 

    FILE*fp,*fp1,*fp2; 

    fp=fopen("ide_input","w"); 
    fp1=fopen("error_log","w"); 
    fp2=fopen("lex_output","w"); 

    if(fp==NULL || fp1==NULL) 
    { 
     strcpy(str,"file cannot be found"); 
     fputc(str,fp1); 
    } 

    while(1) 
    { 
     ch=fgetc(fp); 
     if(ch==EOF) 
      break; 
     else 
     { 
      if(ch!='/0') 
       fputc(ch,fp2); 
     } 
    } 
    fclose(fp); 
    fclose(fp1); 
    system("pause"); 
    return 0; 
} 

Ce code me donne une erreur de "erreur de construction .. erreur 1". Puis-je savoir pourquoi? Je suis sur Windows XP travaillant sur dev cpp?Que signifie cette erreur de construction lors de la compilation de ce programme?

+0

Quel est le texte de l'erreur? – pmg

+0

erreur de construction [compiler.exe] error1 – Hick

+1

Etes-vous sûr de vouloir ouvrir les 3 FICHIERS pour l'écriture? Aucun pour la lecture? – pmg

Répondre

0

Il y a quelques problèmes avec votre code. Une chose est que vous avez écrit /0 au lieu de \ 0, et une autre est que vous utilisez fputc pour imprimer une chaîne, lorsque vous devez utiliser fputs.

Je ne sais pas si c'est ce qui provoque cette "erreur 1", mais vous pouvez commencer par corriger ces erreurs.

EDIT:

Je n'ai pas utilisé ce compilateur particulier, mais tous les autres compilateur que j'ai jamais utilisé imprime des messages d'erreur plus spécifiques lorsqu'il trouve une en erreur dans le code. Êtes-vous sûr de ne rien obtenir de plus spécifique que "Error 1"?

Et si vous ne pouvez pas: Imprime-t-il des messages d'erreur plus spécifiques dans d'autres cas? Si c'est le cas, alors peut-être qu'il n'y a rien de mal avec votre programme, et l'erreur est causée par autre chose, comme un disque complet?

Et une autre idée: Dans votre message original, il y avait quelques problèmes avec les lignes #include au début, mais quelqu'un a édité cela pour vous. Peut-être que ce n'était pas un problème juste dans le poste, mais il y avait une erreur dans votre programme d'origine? Vérifiez ces lignes! (Des erreurs de préprocesseur peuvent parfois provoquer des messages d'erreur étranges.)

+0

j'ai fait les changements encore son dire erreur de construction erreur [compiler.exe] 1 – Hick

1

fputc() accepte un caractère et un flux dans cet ordre. Vous passez un pointeur et un flux.

if(ch!='/0') Vous comparez ch (un caractère) à une constante de plusieurs caractères (la comparaison produira toujours « true »),
Je pense que vous voulez if(ch!='\0')

Et peut-être votre compilateur n'accepte pas C99 commentaires (le //int en haut)


Modifier

Aussi, vous comparez un char à un int à

ch = fgetc(fp); 
if (ch == EOF) 
    break; 

fgetc() retourne un int. Je ne pense pas que cela conduirait le compilateur à générer une erreur, mais votre programme ne fonctionnerait pas nécessairement comme prévu.


Edit2

Selon certains résultats de Google, vous pouvez essayer de copier votre code pour un tout nouveau projet, avec un tout nouveau makefile, et essayez à nouveau.

+0

j'ai fait les chages et toujours eu la même erreur. Veux savoir ce que cela signifie ? – Hick

1

Les erreurs dans le programme lui-même ne causeront pas cette "erreur 1".Recherche de devcpp erreur 1 retourne beaucoup de problèmes similaires, la plupart ont à faire avec des problèmes de chemin.

Pouvez-vous fournir une sortie complète du message d'erreur?

Questions connexes