在 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
作为条件。
我必须在文件上写一个字符串,地址如:"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
作为条件。