C, char에 의한 파일을 읽고 있는데 2 개의 연속 문자를 가져와야합니다. 누군가 제게 몇 가지 옵션을 제안 해 주시겠습니까?스트림에서 2 개의 연속 문자를 얻으려면 어떻게해야합니까?
프로그램의 주요 아이디어는 소스 C 파일을 읽고 모든 중요한 문자 (ws 무시)의 수를 찾고 '* /'& '/ *'을 무시하는 것입니다. 저는이 프로그램을 정말 기본적인 수준으로 작성하려고 노력하고 있습니다. 왜냐하면 그것은 내 친구를위한 과정이기 때문입니다. 일반적으로 저는 PHP 프로그래머입니다.
이것은 내가 작성한 전체 코드입니다.
#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;
}
fgetc()를 호출하여 frst 문자를 얻은 다음 다시 호출하여 다음 문자를 가져옵니다. 아니면 너무 명백한가요? –
전체 프로그램을 게시 할 수 있습니까? 또한 높은 수준의 논리를 말해. 여러 줄 주석/*과 */ – Madhu
을 사용하여 뭔가를하려고하는 것처럼 보입니다. 프로그램의 주요 아이디어는 소스 C 파일을 읽고 모든 중요한 문자 (ws 무시)의 수를 찾고 '* /'를 무시하는 것입니다. & '/. 저는이 프로그램을 정말 기본적인 수준으로 작성하려고 노력하고 있습니다. 왜냐하면 그것은 내 친구를위한 과정이기 때문입니다. 일반적으로 저는 PHP 프로그래머입니다. – bozhidarc