Как сделать, чтобы оператор if работал правильно?
#include <stdio.h> #include <string.h> #include <ctype.h> int all_digits(char *s){ for (; *s!=0; s++){ if (!isdigit(*s)){ return 0; } } return 1; } int main(){ FILE * fr = fopen("file.csv", "r"); char save[500], line[200], to_find[50]; int oneByOne = 0, numberOfFields=8; char *word = NULL; printf("Enter the ID card number: "); scanf("%s", to_find); if(all_digits(to_find) && strlen(to_find) == 13){ while(fgets(line, 200, fr)){ word = strtok(line, "\n"); strcpy(save, line); if (strstr(save, to_find)){ char *wordone = strtok(save, ","); while (wordone != NULL){ printf("Here are your details: %s\n", wordone); wordone = strtok(NULL, ","); } } } fclose(fr); printf("Found. Hello World!\n"); } else { printf("enter correclty\n"); } return 0; }
Что я уже пробовал:
У этого кода есть одна проблема. Проблема в том, что
if(all_digits(to_find) && strlen(to_find) == 13)Всякий раз, когда я пытаюсь ввести 13 символов, но не из файла, то он должен дать мне сообщение else statement, но он печатает Привет, мир!. Хотя Привет, мир! находится в if-утверждении. Как сделать так, чтобы это работало правильно?