Запись символа в файл на C (mbed)? - PullRequest
0 голосов
/ 28 января 2019

Это мой код C / C ++ для записи символа в файл.

#include "mbed.h"

Serial pc(USBTX, USBRX);
char c;
char *cha = &c;

int main() {
     FILE* WriteTo = fopen("/local/yourtext.txt", "w");

     pc.printf("Write something and then press enter when finished...\n\r");

     while (c != '\n') {
        c = pc.getc();
        pc.printf(cha);
        fputc(c, WriteTo);
     }

     fclose(WriteTo);   

     pc.printf("File write successfull.\n\r");
}

Проблема в том, что он не работает на моем LPC1768.Требуется только один символ, и я больше не могу печатать.Я пробовал другие способы, но ни один из них не позволял мне записывать в файл.

Я хотел бы также знать, очищается ли getc() после использования putc.Есть ли ограничения на количество символов, которые я могу написать?

1 Ответ

0 голосов
/ 28 января 2019
pc.printf(cha);

printf необходимо format аргумент, чтобы быть null прекращено char *.Но вы передаете не null прекращается char *, вызывая, таким образом, неопределенное поведение.

Использование:

pc.printf("%c", *cha); //Or pc.printf("%c", c);
...