在 ISO C89 中的文件上写入字符串

Writing strings on files in ISO C89

我必须在文件上写一个字符串,地址如:"Via Leopardi 38"。 我认为循环和字符打印是最好的系统,因为它没有与非空终止字符串相关的问题。 问题在于,当循环到达空字符("Via" 和 "Leopardi" 之间的 space 时,循环结束并且它只写入 "Via"。 我可以使用循环的不同测试条件吗?

FILE *fo = open(filename,"w");

for (j=0;isalnum(phonebook[i].addr[j])!=0;j++) {


 fprintf(fo,"%c",phonebook[i].addr[j]);

}

空格既不是字母也不是数字,所以 isalnum(phonebook[i].addr[j]) 将 return 0 并且循环结束。

尝试使用 phonebook[i].addr[j]!=0 作为条件。