C chaine + ascii
Résolu
capa57
Messages postés
352
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'explique mon problème je dois faire un petit code qui demande à l'utilisateur de tapper quelque chose au clavier, tant qu'il a pas appuyé sur la touche échap, on rentre les données dans un fichier.
donc j'ai fait ceci
#include <stdio.h>
int main(char argc, char *argv[]){
char nom[20],phrase[100];
FILE *fichier;
printf("nom du fichier ? \n");
scanf("%s", nom);
fichier=fopen(nom,"w");
printf("Entrez une phrase \n");
getchar();
fgets(phrase,100,stdin);
printf("phrase : %s", phrase);
fprintf(fichier,"%s\n",phrase);
}
ça permet de créer un fichier et d'écrire une phrase dedans...
mais je suis perdu pour pouvoir dire , tant qu'on a pas appuyé sur échap, on peut rentrer ce qu'on tappe au clavier dans notre fichier....
J'ai pensé à ça (il faut que je compare avec la valeur ASCII 0x1B (échap)
while(phrase != 0x1B){
fgets(phrase,100,stdin);
fgets(phrase,100,stdin);
printf("phrase : %s \n", phrase);}
fprintf(fichier,"%s\n",phrase);
}
mais ça fonctionne pas du tout lol, je suis perdu quelqu'un peut m'aider ?
J'explique mon problème je dois faire un petit code qui demande à l'utilisateur de tapper quelque chose au clavier, tant qu'il a pas appuyé sur la touche échap, on rentre les données dans un fichier.
donc j'ai fait ceci
#include <stdio.h>
int main(char argc, char *argv[]){
char nom[20],phrase[100];
FILE *fichier;
printf("nom du fichier ? \n");
scanf("%s", nom);
fichier=fopen(nom,"w");
printf("Entrez une phrase \n");
getchar();
fgets(phrase,100,stdin);
printf("phrase : %s", phrase);
fprintf(fichier,"%s\n",phrase);
}
ça permet de créer un fichier et d'écrire une phrase dedans...
mais je suis perdu pour pouvoir dire , tant qu'on a pas appuyé sur échap, on peut rentrer ce qu'on tappe au clavier dans notre fichier....
J'ai pensé à ça (il faut que je compare avec la valeur ASCII 0x1B (échap)
while(phrase != 0x1B){
fgets(phrase,100,stdin);
fgets(phrase,100,stdin);
printf("phrase : %s \n", phrase);}
fprintf(fichier,"%s\n",phrase);
}
mais ça fonctionne pas du tout lol, je suis perdu quelqu'un peut m'aider ?
A voir également:
- C chaine + ascii
- Code ascii - Guide
- Chaine tnt gratuite sur mobile - Guide
- Chaine radio - Télécharger - Médias et Actualité
- Plus de chaine tv - Guide
- Chaine musique bouygues - Accueil - Guide TV et vidéo
7 réponses
tu compares une chaine à un caractère, ça ne colle pas..
char c;
while ((c = getchar ()) != 0x1B) ....
char c;
while ((c = getchar ()) != 0x1B) ....
Utilisateur anonyme
et enleve 1 des 2 fgets
#include <stdio.h>
int main(char argc, char *argv[]){
char nom[20],phrase[100], c;
FILE *fichier;
printf("nom du fichier ? \n");
scanf("%s", nom);
fichier=fopen(nom,"w");
while ((c = getchar ()) != 0x1B){
printf("Entrez une phrase \n");
fgets(phrase,100,stdin);
printf("phrase : %s", phrase);
fprintf(fichier,"%s\n",phrase);
}
}
J'ai fait ça, il me quitte bien qd je fais échap... mais maintenant il bug un peu, la 1ere phrase que je tappe il me la prends... ensuite il me demande que 1 fois sur 2 de rentrez une phrase, et quand il me les affiche, il m'enlève la 1ere lettre ...
:'(
int main(char argc, char *argv[]){
char nom[20],phrase[100], c;
FILE *fichier;
printf("nom du fichier ? \n");
scanf("%s", nom);
fichier=fopen(nom,"w");
while ((c = getchar ()) != 0x1B){
printf("Entrez une phrase \n");
fgets(phrase,100,stdin);
printf("phrase : %s", phrase);
fprintf(fichier,"%s\n",phrase);
}
}
J'ai fait ça, il me quitte bien qd je fais échap... mais maintenant il bug un peu, la 1ere phrase que je tappe il me la prends... ensuite il me demande que 1 fois sur 2 de rentrez une phrase, et quand il me les affiche, il m'enlève la 1ere lettre ...
:'(
quand je test avec une chaine de caractère par exemple quand je tappe "exit" ça fonctionne, mais j'arrive pas AVEC LE CODE ASCII :@
je comprends vraiment rien au C (c'est horrible comme langage)
#include <stdio.h>
int main(char argc, char *argv[]){
char nom[20],phrase[100], c;
FILE *fichier = NULL;
printf("nom du fichier ? \n");
scanf("%s", nom);
fichier=fopen(nom,"w");
/*while ((c = getchar ()) != 0x1B){
printf("Entrez une phrase \n");
fgets(phrase,100,stdin);
printf("phrase : %s", phrase);
fprintf(fichier,"%s\n",phrase);
}
//fclose(fichier);
}
*/
FILE *fich1 = NULL;
fich1=fopen(nom, "w");
if (fichier != NULL) {
while (strcmp(phrase, "exit") != 0) {
printf("Enter the text you want to add to the file : \n");
gets(phrase);
if (strcmp(phrase, "exit") !=0 ) {
fprintf(fichier, "%s", phrase);
fprintf(fichier, "\n");
}
}
} else {
printf("fopen did not open the file!!!\n");
}
fclose(fichier);
return 0;
}
je comprends vraiment rien au C (c'est horrible comme langage)
#include <stdio.h>
int main(char argc, char *argv[]){
char nom[20],phrase[100], c;
FILE *fichier = NULL;
printf("nom du fichier ? \n");
scanf("%s", nom);
fichier=fopen(nom,"w");
/*while ((c = getchar ()) != 0x1B){
printf("Entrez une phrase \n");
fgets(phrase,100,stdin);
printf("phrase : %s", phrase);
fprintf(fichier,"%s\n",phrase);
}
//fclose(fichier);
}
*/
FILE *fich1 = NULL;
fich1=fopen(nom, "w");
if (fichier != NULL) {
while (strcmp(phrase, "exit") != 0) {
printf("Enter the text you want to add to the file : \n");
gets(phrase);
if (strcmp(phrase, "exit") !=0 ) {
fprintf(fichier, "%s", phrase);
fprintf(fichier, "\n");
}
}
} else {
printf("fopen did not open the file!!!\n");
}
fclose(fichier);
return 0;
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
la premiere lettre part dans le getchar, soit tu utilises fgets mais il faudra inclure la premiere lettre dans ta chaine, soit tu n'utilises que getchar pour construire tes phrases
ça peut ressembler à ça , mais je n'ai pas testé , je n'ai pas de compilo ici ...
int i;
char c;
do
{
i=0;
printf("Entrez une phrase ou ESC pour sortir\n");
c = getchar();
while ( (c!='\n') && (c!=0x1B) && ( i<99))
{
phrase[i++]=c;
c=getchar();
}
if ( i>0)
{
phrase[i]='\0';
printf("phrase : %s", phrase);
fprintf(fichier,"%s\n",phrase);
}
}while ( c != 0x1B )
ça peut ressembler à ça , mais je n'ai pas testé , je n'ai pas de compilo ici ...
int i;
char c;
do
{
i=0;
printf("Entrez une phrase ou ESC pour sortir\n");
c = getchar();
while ( (c!='\n') && (c!=0x1B) && ( i<99))
{
phrase[i++]=c;
c=getchar();
}
if ( i>0)
{
phrase[i]='\0';
printf("phrase : %s", phrase);
fprintf(fichier,"%s\n",phrase);
}
}while ( c != 0x1B )
pffff tu me dégoutes... ça fonctionne lol ^^
bha merci, j'ai vraiment du mal à capter le C quoi, c'est vraiment complèxe il y a trop de fonctions... getchar() scanf printf getch() bla bla bla
en tout cas merci voici le code complet pour ceux qui veulent :)
#include <stdio.h>
int main(char argc, char *argv[]){
char nom[20],phrase[100], c;
FILE *fichier;
printf("nom du fichier ? \n");
scanf("%s", nom);
fichier=fopen(nom,"w");
int i;
do
{
i=0;
printf("Entrez une phrase ou appuyez sur ECHAP pour quitter\n");
c = getchar();
while ( (c!='\n') && (c!=0x1B) && ( i<99))
{
phrase[i++]=c;
c=getchar();
}
if ( i>0)
{
phrase[i]='\0';
printf("phrase : %s\n", phrase);
fprintf(fichier,"%s\n",phrase);
}
}while ( c != 0x1B ) ;
}
bha merci, j'ai vraiment du mal à capter le C quoi, c'est vraiment complèxe il y a trop de fonctions... getchar() scanf printf getch() bla bla bla
en tout cas merci voici le code complet pour ceux qui veulent :)
#include <stdio.h>
int main(char argc, char *argv[]){
char nom[20],phrase[100], c;
FILE *fichier;
printf("nom du fichier ? \n");
scanf("%s", nom);
fichier=fopen(nom,"w");
int i;
do
{
i=0;
printf("Entrez une phrase ou appuyez sur ECHAP pour quitter\n");
c = getchar();
while ( (c!='\n') && (c!=0x1B) && ( i<99))
{
phrase[i++]=c;
c=getchar();
}
if ( i>0)
{
phrase[i]='\0';
printf("phrase : %s\n", phrase);
fprintf(fichier,"%s\n",phrase);
}
}while ( c != 0x1B ) ;
}