caractère nul(s) ignoré activé par défaut
Je suis en train de mettre en œuvre la pile avec le tableau! Chaque fois que j'execute le programme s'exécute bien, mais j'obtiens le message d'avertissement comme caractère null(s) ignoré activé par défaut
Que fait cet avertissement veux dire?.. ce que je fais mal?
Mon code est:
#include<stdio.h>
#include<stdlib.h>
# define MAX 10
int top=-1;
int arr[MAX];
void push(int item)
{
if(top==MAX-1)
{
printf("OOps stack overflow:\n");
exit(1);
}
top=top+1;
arr[top]=item;
}//warning
int popStack()
{
if(top==0)
{
printf("Stack already empty:\n");
exit(1);
}
int x=arr[top];
top=top-1;
return x;
}
void display()
{
int i;
for(i=top;i>=0;i--)
{
printf("%d ",arr[i]);
}
return;
}
int peek()
{
if(top==-1)
{
printf("\nEmpty stack");
exit(1);
}
return arr[top];
}
int main()
{
int i,value;
printf(" \n1. Push to stack");
printf(" \n2. Pop from Stack");
printf(" \n3. Display data of Stack");
printf(" \n4. Display Top");
printf(" \n5. Quit\n");
while(1)
{
printf(" \nChoose Option: ");
scanf("%d",&i);
switch(i)
{
case 1:
{
int value;
printf("\nEnter a value to push into Stack: ");
scanf("%d",&value);
push(value);
break;
}
case 2:
{
int p=popStack();
printf("Element popped out is:%d\n",p);
break;
}
case 3:
{
printf("The elements are:\n");
display();
break;
}
case 4:
{
int p=peek();
printf("The top position is: %d\n",p);
break;
}
case 5:
{
exit(0);
}
default:
{
printf("\nwrong choice for operation");
}
}
}
return 0;
}//warning
Je suis sous Dev C++ IDE.
Quand vous dites "je suis sous Dev C compilateur" voulez-vous dire que vous êtes à l'aide de la Dev-C++ IDE? Qui vient avec MinGW gcc et g++ pour les compilateurs).
l'avertissement d'avoir une ligne qui lui est associé?
J'ai édité ma question!
l'avertissement d'avoir une ligne qui lui est associé?
J'ai édité ma question!
OriginalL'auteur user2227862 | 2013-06-20
Vous devez vous connecter pour publier un commentaire.
Quelque part dans votre fichier de code source, vous avez de caractère avec la valeur de l'octet 0 (le ASCII NUL caractère). Qui sera invisible dans la plupart des éditeurs de texte.
Le compilateur (gcc) est juste vous dire qu'il a ignoré ce personnage - qui ne devrait pas être là, dans votre code source .
Vous pourriez ouvrir votre fichier dans un éditeur hexadécimal, figure où ce caractère est et de le corriger, ou de supprimer votre fichier source et copiez collez-la à nouveau à partir du code que vous avez posté ici.
OriginalL'auteur nos
Si vous voyez un grand nombre de ces caractères null avertissements considèrent comme une possibilité. Le problème pourrait être causé par quelqu'un de la création du fichier source à l'aide d'un éditeur qui a sauvé le fichier 16 bits Unicode.
De corriger ça (sur Linux) n hex editor est nécessaire. Il vous suffit d'ouvrir le fichier dans l'éditeur geany (autres que les rédacteurs peuvent également prendre en charge ce trop) vérifier les Propriétés du Fichier pour voir l'encodage, si c'est un UTF/UCS 16 puis dans le menu Document, vous pouvez le modifier en UTF8. C'est probablement la peine de retrait de la NOMENCLATURE, si il y en a un.
Dans ce cas l'erreur est être prévu, car un UCS16 encodage de caractères dans la plage ASCII fera tous les deuxième octet d'un caractère null.
OriginalL'auteur bvanlew
Comme d'autres l'ont dit, l'avertissement signifie qu'il y a des octets nuls dans votre code source.
Cela peut se produire, par exemple, lorsque vous essayez de compiler du code dans Linux qui a été écrit à l'origine comme un projet Visual Studio sous Windows, par défaut enregistre en tant que UTF-16. Depuis que g++ attend source des fichiers en UTF-8, il finit par la lecture des octets nuls.
Dans mon cas, la solution la plus simple est de convertir l'encodage à l'aide de iconv (Linux)
Vous pouvez vérifier l'encodage d'un fichier avec fichier
OriginalL'auteur Benitok