我必须在文件中写入一个字符串,一个地址,例如:“Via Leopardi 38”。 我认为循环和逐字符打印是最好的系统,因为它没有与非空终止字符串相关的问题。 问题是,当循环到达空字符(“Via”和“Leopardi”之间的空格)时,循环结束并且只写入“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])
将返回 0
并且 tle 循环结束。
尝试使用 phonebook[i].addr[j]!=0
作为条件。
关于c - 在 ISO C89 中的文件上写入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34117518/