这是我的代码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。它只需要输入一个字符,然后便无法输入了。我尝试了其他方法,但是尝试的任何方法都不允许我写入文件。
我还想知道在使用putc之后getc()
是否清空。我可以写的字符数有限制吗?
答案 0 :(得分:3)
pc.printf(cha);
printf
需要format
参数是 null
终止的char *
。
但是您通过调用未定义的行为来传递非 null
终止的char *
。
使用:
pc.printf("%c", *cha); //Or pc.printf("%c", c);