Я пытаюсь написать простую основную функцию, которая принимает файл через командную строку и печатает все слова в файле.
Однако я следовал нескольким учебникам, которые просто неКажется, не работает. Вот мой код:
int main(int argc, char *argv[]) {
if (argc < 2) return 1;
char * filename = argv[1];
FILE* file = fopen(filename, "r");
if(file == NULL) {
perror("Error opening file");
return(1);
}
char c;
while((c = fgetc(file)) != EOF)
{
if(c == ' ' || c == '\n')
{
printf("\n");
}
else
{
printf("%c", c);
}
}
printf("Done.");
fclose(file);
return 0;
}
Пока он ничего не возвратил и не показывает ошибку. Командная строка выглядит следующим образом:
C:\Users\<USERNAME>\Desktop\C_C++>program.exe < file.txt
C:\Users\<USERNAME>\Desktop\C_C++>program.exe > file.txt
C:\Users\<USERNAME>\Desktop\C_C++>
Она использует командную строку Windows. Я не знал, нужно ли было использовать >
или <
при передаче параметра файла, но я также использовал имя файла вместо filename
в FILE* file = fopen(filename, "r");
, чтобы просто открыть егонепосредственно вместо передачи имени файла в качестве параметра, но ничего не показывает.
Понятия не имею, что происходит не так.