#c #tabs #conditional-statements #fopen #fgetc
#c #вкладки #условные утверждения #открой #fgetc
Вопрос:
Я пытаюсь написать небольшую программу для сортировки слов из файла .txt. Я использую Dev-C 5.11 в качестве IDE с GCC 4.9.2.
Ниже содержимое файла .txt: aaa ert ert ert zzzz aaa zzzz
# ert ert #xxx
Я должен хранить одно слово по строкам, пропускать пустые строки и строки, начинающиеся с «#».
Я перепробовал несколько вещей и не могу понять, почему это не работает
#include lt;stdio.hgt; #include lt;stdlib.hgt; #include lt;string.hgt; #define TML 50 #define TMF 255 int main(int argc, char * argv[]){ float argv0 = atof(argv[0]); float argv1 = atof(argv[1]); float argv2 = atof(argv[2]); char dict[strlen(argv[2])]; //contient filename pour pointeur fichier FILE *df, *rf; //init pointeur de fichier char out, line[TMF][TML] = {{0},{0}};//tableau contenant toutes les lignes int i=0, j=0, nbrL=0, skip=0; //variable de contrôles if(strcmp(argv[0], "wordcount") == 0 amp;amp; strcmp(argv[1], "dictfile") == 0) { strcpy(dict, argv[2]); printf("%s n", dict); df = fopen(("%s", dict), "r"); //ouverture du fichier if(df!=NULL){ do{ do{ // 32:' ' 10:n 35:# if(line[i][j-1] == atoi(" ")){ skip = 1;} else if(line[i][j-1] == atoi("n")){ skip = 1;} else if(line[i][j-1] ==atoi("#")){ skip = 1;} else{ skip = 0;} out = fgetc(df); line[i][j] = out; printf("(%d)", line[i][j]); j ; }while(skip != 1); //printf("(%s)", line[i]); i ; }while(out != EOF); nbrL=i; fclose(df); } else printf("Error in opening file"); } else printf("Command unknown or invalid argumentsn"); printf("n-----------------------------n"); return 0; }
Ниже, что дает приведенный выше код: результаты программы
По вашему мнению, в чем моя ошибка, если это действительно ошибка с моей стороны?
Комментарии:
1. Каким должен быть ожидаемый результат?
2. Результат должен отображать одно слово в строке и избегать «»и»#».