То, что пытается сделать моя «верхняя» программа - это делать буквы прописными. Он получает файл из командной строки как argv; затем читает его, потом делает его заглавными.
Пример: «Интересно, работает ли он» в файле example.txt. В командной строке:
C:\Users\...>upper example.txt
I WONDER IF IT WORKS
Это был код, который я использовал первым:
int main (int argc, char *argv[]){
FILE * fp;
int ch;
if ((fp = fopen (argv[1] , "r+")) == NULL) {
fprintf (stderr , "Can not be opened.");
exit(EXIT_FAILURE);
}
while((ch = getc(fp)) != EOF){
if (isalpha(ch))
putchar(toupper(ch));
else
putchar(' ');
}
fclose(fp);
return 0;
}
Это работает, но я видел более краткую версию, которая не нуждается в выражении else
.
while((ch = getc(fp)) != EOF){
putchar(toupper(ch));
}
И это ставит пробелы между каждым словом тоже. Как это возможно?