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

标签 c string file loops ansi-c

我必须在文件中写入一个字符串,一个地址,例如:“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/

相关文章:

c - 内存泄漏/GLib 问题

Javascript 字符串操作

Python重试打开文件

c# - 重命名文件夹中的文件#

源代码树的 C Makefile

c++ - 为什么在 C++ 中声明字符串时大小不同?

c - 有没有办法回到 typedef 枚举的字符串?

string - 为什么每次重新启动程序时 math/rand 都返回相同的结果?

java - 如何在java(Android)中将字符串转换为条件表达式?

c++ - 不使用 QPrintDialog 直接使用 Qt 硬件打印