我正在讀C中的文件,char by char,但我需要得到2個連續的字符。請,有人可以給我一些建議嗎?如何從流中獲取兩個連續的字符?
該程序的主要思想是讀取源文件並找到所有重要字符的數量(忽略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()獲取第一個字符,然後再次調用它以獲取下一個字符。或者這太明顯了? – 2009-12-28 12:26:19
你可以請你發佈你的整個程序?同時告訴我高級邏輯。似乎你正在嘗試使用多行註釋/ *和*/ – Madhu 2009-12-28 12:29:04
做一些事情,程序的主要思想是讀取源文件C並找到所有重要字符的數量(忽略ws)並忽略'* /' &'/ *'。我試圖在真正的基礎層面編寫程序,因爲它適合我的朋友學習。一般來說,我是PHP程序員。 – bozhidarc 2009-12-28 13:12:08