2015-01-18 4 views
-3

Я читаю содержимое из файла, который нужно прочитать в массиве символов в C. Как я могу изменить все буквы в файле с строчными буквами в верхнем регистре?Шестнадцатеричные символы для символов верхнего регистра в C и записи в файл

+2

'' ctype.h' имеет toupper'. –

+1

Где у вас есть до сих пор? что вы достигли? Например, можно ли дублировать содержимое файла? –

+0

Я уже мог учесть буквы и писать в отдельные файлы, но я не знал, как перезаписать документ. – LeslieKnowsBest

ответ

1

Вот возможный алгоритм:

  1. Открыть файл (назовем его А) - Еореп()
  2. Открыть другой файл для записи (назовем его B) - Еореп()
  3. Читать содержимое A - getc() или fread(); что вы считаете
  4. Сделать содержание вы читаете в верхнем регистре - TOUPPER()
  5. Написать результат 4 шага к B - FWRITE() или fputc() или fprintf()
  6. Закрыть все дескрипторы файлов - fclose()

Ниже приведен код, написанный на C:

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

#define INPUT_FILE  "input.txt" 
#define OUTPUT_FILE  "output.txt" 

int main() 
{ 
    // 1. Open a file 
    FILE *inputFile = fopen(INPUT_FILE, "rt"); 
    if (NULL == inputFile) { 
     printf("ERROR: cannot open the file: %s\n", INPUT_FILE); 
     return -1; 
    } 

    // 2. Open another file 
    FILE *outputFile = fopen(OUTPUT_FILE, "wt"); 
    if (NULL == inputFile) { 
     printf("ERROR: cannot open the file: %s\n", OUTPUT_FILE); 
     return -1; 
    } 

    // 3. Read the content of the input file 
    int c; 
    while (EOF != (c = fgetc(inputFile))) { 
     // 4 & 5. Capitalize and write it to the output file 
     fputc(toupper(c), outputFile); 
    } 

    // 6. Close all file handles 
    fclose(inputFile); 
    fclose(outputFile); 

    return 0; 
} 
+0

Хороший ответ и хорошее использование 'int c', а не' char c'. Однако ОП не продемонстрировал большой работы, чтобы заслужить этот прекрасный ответ. – chux

+0

Спасибо за ваш комментарий! –

+0

Большое спасибо! Это сработало, и я смог организовать его довольно хорошо, я это ценю. – LeslieKnowsBest