Почему моя функция fprintf отображает только одну строку - PullRequest
0 голосов
/ 15 января 2020

Я делаю упражнение о чтении символа из файла, затем преобразовываю его в верхний регистр и записываю в файл и показываю результат. Поэтому, когда я запускаю программу, она должна отображать весь мой текст в моем файле в верхнем регистре , но когда я запускаю программу, она отображает только последнюю строку текста (последнюю новую строку) в верхнем регистре. Поэтому я проверяю мой файл, и он все еще содержит весь мой текст, причем все в верхнем регистре.

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main()
{
    FILE * readFile = NULL;
    FILE * writeFile = NULL;
    readFile = fopen ("original.txt","r");
    writeFile = fopen ("temporary.txt","w");
    char inFile = ' ' ;

    if(readFile == NULL){
        printf("Error opening original file\n\n");
        return -1;
    }

    if(writeFile == NULL){
        printf("Error creating temporary file ");
        return -1;
    }

    while ((inFile = fgetc(readFile)) != EOF){
        if (islower(inFile))
        {
            inFile = inFile -32;
        }

        fputc(inFile, writeFile);
    }
    fclose(readFile);
    readFile = NULL;
    fclose(writeFile);
    writeFile = NULL;
    //Rename and Remove
    remove("original.txt");
    rename("temporary.txt","original.txt");
    remove("temporary.txt");
    readFile = fopen("original.txt","r");
    if (readFile == NULL){
        printf("Error opening file 2");
        return -1;
    }
    while ((inFile =fgetc(readFile)) != EOF){
        printf("%c",inFile);
        }
    fclose (readFile);
    readFile = NULL;
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...