用 C (mbed) 将字符写入文件?

Writing a character to a file in C (mbed)?

这是我的代码 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 上不起作用。它只接受一个字符,然后我就无法再输入了。我尝试了其他一些方法,但 none 我尝试的方法允许我写入文件。

我还想知道 getc() 在我使用 putc 后是否清空。它对我可以写的字符数有限制吗?

pc.printf(cha);

printf 需要 format 参数才能 null 终止 char *。 但是你正在传递非 null 终止 char * 因此通过调用未定义的行为。

使用:

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