Je lis un fichier en C, char par char mais j'ai besoin de 2 caractères consécutifs. S'il vous plaît, quelqu'un peut-il me suggérer des options?Comment puis-je obtenir deux caractères consécutifs d'un flux?
l'idée principale du programme est de lire un fichier source C et de trouver le nombre de tous les caractères significatifs (ignorer ws) et d'ignorer '* /' & '/ *'. J'essaye d'écrire le programme au niveau vraiment basique parce que c'est pour le travail de cours pour mon ami. En général, je suis programmeur PHP.
Ceci est le code complet que j'ai réussi à écrire.
#include <stdio.h>
#include <string.h>
int in_array(char *array, char searchedEl);
int main(){
FILE *fp;
char readChar;
char exeptChars[] = {'\n', '\t','\0'};
int charsCounter = 0;
char *openComment = "/*";
char *closeComment = "*/";
char tempHolder[2];
int j=0;
fp=fopen("testrw.txt","r");
if(!fp){
printf("Could not open file\n");
return 1;
}
while((readChar = fgetc(fp)) != EOF){
if((readChar == '*') || (readChar == '/') || (readChar == '\\')){
if(j < 1){
tempHolder[j] = readChar;
j++;
continue;
}
else{
tempHolder[j] = readChar;
if(strcmp(tempHolder, openComment) || strcmp(tempHolder, closeComment)){
charsCounter += 2;
}
tempHolder[2]='\0';
j=0;
continue;
}
}
if(!in_array(exeptChars, readChar)){
printf("Permited char: %c\n", readChar);
charsCounter++;
}
}
printf("Characters %d\n", charsCounter+1);
return 0;
}
int in_array(char *array, char searchedEl){
char tempEl;
int i=0;
while(tempEl = array[i]){
if(tempEl == searchedEl){
return 1;
}
i++;
}
return 0;
}
Appelez fgetc() pour obtenir le premier caractère, puis rappelez-le pour obtenir le caractère suivant. Ou est-ce trop évident? –
Pouvez-vous s'il vous plaît poster votre programme entier? Dites-moi aussi la logique de haut niveau. On dirait que vous essayez de faire quelque chose avec des commentaires multilignes/* et */ – Madhu
l'idée principale du programme est de lire un fichier C source et de trouver le nombre de tous les caractères significatifs (ignorer ws) et d'ignorer '* /' & '/ *'. J'essaye d'écrire le programme au niveau vraiment basique parce que c'est pour le travail de cours pour mon ami. En général, je suis programmeur PHP. – bozhidarc